Dan Carpenter 457ae7268b Btrfs: fix an integer overflow check
This isn't super serious because you need CAP_ADMIN to run this code.

I added this integer overflow check last year but apparently I am
rubbish at writing integer overflow checks...  There are two issues.
First, access_ok() works on unsigned long type and not u64 so on 32 bit
systems the access_ok() could be checking a truncated size.  The other
issue is that we should be using a stricter limit so we don't overflow
the kzalloc() setting ctx->clone_roots later in the function after the
access_ok():

	alloc_size = sizeof(struct clone_root) * (arg->clone_sources_count + 1);
	sctx->clone_roots = kzalloc(alloc_size, GFP_KERNEL | __GFP_NOWARN);

Fixes: f5ecec3ce21f ("btrfs: send: silence an integer overflow warning")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ added comment ]
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-29 14:29:08 +02:00
..
2016-12-22 11:25:24 +00:00
2017-01-14 14:58:29 -06:00
2016-12-25 17:21:23 +01:00
2017-01-31 13:23:09 -05:00
2016-12-25 17:21:22 +01:00
2017-01-14 19:31:40 -05:00
2016-12-05 19:01:16 -05:00
2016-09-27 18:47:38 -04:00
2016-12-14 23:48:11 -05:00
2016-12-03 20:51:35 -05:00
2016-12-16 16:30:49 -05:00
2016-12-05 19:03:49 -05:00
2016-11-30 08:38:07 +01:00
2016-12-25 17:21:22 +01:00