checking for NULL before calling free
As I understand, the no-op on NULL was not always there.
In the bad old days of C (back around 1986, on a pre-ANSI standard cc compiler) free(NULL) would dump core. So most devs tested for NULL/0 before calling free.
The world has come a long way, and it appears that we don't need to do the test anymore. But old habits die hard;)
http://discuss.joelonsoftware.com/default.asp?design.4.194233.15
The construct:
free(NULL);
has always been OK in C, back to the original UNIX compiler written by Dennis Ritchie. Pre-standardisation, some poor compilers might not have fielded it correctly, but these days any compiler that does not cannot legitimately call itself a compiler for the C language. Using it typically leads to clearer, more maintainable code.