[PATCH 2/2] staging: android: ashmem: Don't allow range_alloc() to fail.
Dan Carpenter
dan.carpenter at oracle.com
Fri Feb 15 06:58:26 UTC 2019
On Thu, Feb 14, 2019 at 11:22:51AM -0500, Joel Fernandes wrote:
> On Sat, Feb 09, 2019 at 11:24:03AM +0900, Tetsuo Handa wrote:
> > @@ -722,10 +719,17 @@ static int ashmem_pin_unpin(struct ashmem_area *asma, unsigned long cmd,
> > struct ashmem_pin pin;
> > size_t pgstart, pgend;
> > int ret = -EINVAL;
> > + struct ashmem_range *range = NULL;
> >
> > if (copy_from_user(&pin, p, sizeof(pin)))
> > return -EFAULT;
> >
> > + if (cmd == ASHMEM_PIN || cmd == ASHMEM_UNPIN) {
> > + range = kmem_cache_zalloc(ashmem_range_cachep, GFP_KERNEL);
> > + if (!range)
> > + return -ENOMEM;
>
> According to the too-small-to-fail rule, why are you checking for errors
> here?
>
As a static analysis person, Smatch knows about the GFP_NOFAIL flag.
The small size rule would probably be easy enough to implement for 80%
of the cases but I have avoided doing that and still patch up the code
when I find missing NULL checks.
regards,
dan carpenter
More information about the devel
mailing list