Re: [PATCH] fs/eventpoll: error handling micro-cleanup

From: Jeff Garzik
Date: Sun Oct 01 2006 - 12:30:42 EST


Davide Libenzi wrote:
On Sun, 1 Oct 2006, Jeff Garzik wrote:

Davide Libenzi wrote:
On Sun, 1 Oct 2006, Jeff Garzik wrote:

While reviewing the 'may be used uninitialized' bogus gcc warnings,
I noticed that an error code assignment was only needed if an error had
actually occured.
But that saved one line of code, and there are countless occurences in the
kernel of such code pattern ;)
I'm not sure there are countless occurrences with PTR_ERR(). The line is
incorrect (but harmless) if inode is a valid pointer...

I just tried a `find /usr/src/linux-2.6.16/ -type f -exec grep -H -C 2 PTR_ERR {} \;`
and looked at the cases where the error variable is assigned in any case before the test. Same code pattern as, like:

error = -EFAULT;
if (copy_from_user(...))
goto kaboom;

No, that's quite different. I'm talking about

ptr = get_a_pointer_from_somewhere()
error = PTR_ERR(ptr)

See the difference? The error variable is directly assigned from a potentially-valid pointer. Doing that is quite error prone, whereas
error = -EFOO
is not.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/