Re: Style question: Should one check for NULL pointers?

Eli Carter
2003-07-11T14:18:09Z

Alan Stern wrote:
> On Thu, 10 Jul 2003, Eli Carter wrote:
>
>
>>Alan Stern wrote:
>>[snip]
>>
>>>Ultimately this comes down to a question of style and taste. This
>>>particular issue is not addressed in Documentation/CodingStyle so I'm
>>>raising it here. My personal preference is for code that means what it
>>>says; if a pointer is checked it should be because there is a genuine
>>>possibility that the pointer _is_ NULL. I see no reason for pure
>>>paranoia, particularly if it's not commented as such.
>>>
>>>Comments, anyone?
>>
>>BUG_ON() perhaps?
>
>
> 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.

Eli
--------------------. "If it ain't broke now,
Eli Carter \ it will be soon." -- crypto-gram
eli.carter(a)inet.com `-------------------------------------------------