Subject: Re: /etc/login.conf required to exist after user(8) changes
To: Peter Seebach <seebs@plethora.net>
From: John Nemeth <jnemeth@victoria.tc.ca>
List: current-users
Date: 07/29/2005 04:49:47
On Dec 19,  1:08am, Peter Seebach wrote:
} In message <200507291103.j6TB3miD021103@vtn1.victoria.tc.ca>, John Nemeth write
} s:
} >     I think more to the point, it is irrelevant that the pointer has
} >been freed.  It will still contain the same value.  The freeing
} >function can not modify the pointer itself; therefore, the second half
} >of the patch is completely unnecessary.  Trying to use the data pointed
} >to by the pointer would be wrong; however, the original code doesn't do
} >this, it merely compares the pointer to NULL.
} 
} To be picky, there exist C implementations where at least some, possibly
} all, pointers to freed space compare equal to NULL.
} 
} However, there also exist platforms on which any reference to them, even
} a comparison to NULL, causes undefined behavior.

     How can this be so?  free() is a function, not an operator.
functions can not change the value of their paramters.

} If the pointer is freed, it should not be referenced, even to compare it
} to NULL.

     Assuming the above is true, then I would accept this; however, I
don't understand how the above can be true.  At least not without doing
weird things during function calls, which would break the symantecs of
the language.

}-- End of excerpt from Peter Seebach