Re: [CHECKER] 32 Memory Leaks on Error Paths

From: Valdis . Kletnieks
Date: Tue Sep 16 2003 - 10:07:37 EST


On Tue, 16 Sep 2003 10:52:06 EDT, Timothy Miller said:
>
> >> 276: /* OK, it's not open. Create cache info for it */
> >>START -->
> >> 277: mtdblk = kmalloc(sizeof(struct mtdblk_dev), GFP_KERNEL);
> >> 278: if (!mtdblks)
> >>END -->
> >> 279: return -ENOMEM;
>
> >
> > Invalid. This is quite an obvious false positive, at least if your
> > algorithm checks for possible value ranges.
>
> Wait... one is "mtdblk", and the other is "mtdblks". One has an extra
> 's' on it. Unless there is some kind of aliasing going on, they would
> appear to be different variables. Naturally, I didn't check the
> original code, so I could be full of it. :)

On the other hand, even if the report was invalid (which another posting says isn't
the case), this code is just *begging* for somebody to "fix the typo", due to how
much the kernel uses
foo = function(..)
if (!foo)
Yeah, they're different variables - but we alloc mktblk and then return -ENOMEM
if the OTHER variable is null?? ;)

Attachment: pgp00001.pgp
Description: PGP signature