It isn't there to be defensive, free(NULL) of course is always
guaranteed to be safe. It's a deliberate aid to writing correct code,
you should know where your null pointers are. Whether it actually helps
or not is another matter :-).



On Sun, Jun 03, 2012 at 01:21:46PM +0100, Thomas Adam wrote:
> The current implementation of tmux's xfree() function explicitly fatals if
> the pointer passed to it NULL.  However, the C standard says that passing
> NULL to free() should be a no-op.
> 
> Having looked at this, this is true of all the BSDs (*except* 3BSD) and
> Linux, and Darwin, etc.  I think we're perfectly safe to not be so
> defensive [1].
> 
> This now doesn't make the implementor conscience of whether passing NULL to
> xfree() is going to break things.  Indeed, the motivation for me doing this
> came about because I *didn't* check for just this case; which seemed a
> little odd.
> 
> Note that I really couldn't be bothered to unwrap the calls from xfree() to
> just use free() directly, given this change just calls free() directly from
> xfree() without doing any other checking.  Perhaps it doesn't matter though.
> It would be a lot of unnecessary noise, IMO, if it were to change.
> 
> Kindly,
> 
> -- Thomas Adam
> 
> [1]  http://www.winehq.org/pipermail/wine-patches/2006-October/031544.html
> 
> Thomas Adam (1):
>   Don't check for NULL before xfree()
> 
>  trunk/arguments.c          |   12 ++++--------
>  trunk/array.h              |    3 +--
>  trunk/cmd-command-prompt.c |    9 +++------
>  trunk/cmd-confirm-before.c |    3 +--
>  trunk/cmd-if-shell.c       |    3 +--
>  trunk/cmd-string.c         |    9 +++------
>  trunk/cmd.c                |   27 +++++++++------------------
>  trunk/environ.c            |    9 +++------
>  trunk/screen.c             |    6 ++----
>  trunk/server-client.c      |   19 ++++++-------------
>  trunk/session.c            |    6 ++----
>  trunk/status.c             |   15 +++++----------
>  trunk/xmalloc.c            |    2 --
>  13 files changed, 40 insertions(+), 83 deletions(-)
> 
> -- 
> 1.7.10
> 
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to