On Wed, Dec 18, 2013 at 10:46:40AM +0100, Richard Braun wrote:
> On Wed, Dec 18, 2013 at 10:37:03AM +0100, Marin Ramesa wrote:
> > Compiler needs to check both !a and !b. In order to evaluate !b it must 
> > evaluate b. So when the code path is that when entry is a null pointer, 
> > the evaluation of b results in a dereference of a null pointer.
> 
> No, that's wrong. The && and || operators are guaranteed to be evaluated
> left-to-right, and yield if the first operand compares equal to 0. And
> that's exactly why this check against NULL is done first.

Compares equal to 0 for &&, and not equal to 0 for ||, obviously.

-- 
Richard Braun

Reply via email to