Messages in this thread | | | Date | Fri, 11 Jul 2003 11:16:02 -0400 (EDT) | From | Alan Stern <> | Subject | Re: Style question: Should one check for NULL pointers? |
| |
On Fri, 11 Jul 2003, Eli Carter wrote:
> > Not really needed, since a segfault will produce almost as much > > information as a BUG_ON(). Certainly it will produce enough to let a > > developer know that the pointer was NULL. > > Your first message said, "I see no reason for pure paranoia, > particularly if it's not commented as such." A BUG_ON() call makes it > clear that the condition should never happen. Dereferencing a NULL > leaves the question of whether NULL is an unhandled case or invalid > input. BUG_ON() is an explicit paranoia check, and with a bit of > preprocessing magic, you could compile out all of those checks. > > So it documents invalid input conditions, allows you to eliminate the > checks in the name of speed or your personal preference, or use them to > help with debugging/testing.
Okay, that makes sense. Particularly the debugging and testing part. And for an excellent example of _documented_ paranoia, see the source to schedule_timeout().
But if you look very far through the kernel sources you will see many occurrences of code similar to this:
static void release(struct xxx *ptr) { if (!ptr) return; ...
I can't see any reason for keeping something like that.
Alan Stern
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |