If defined DEBUGNAMES the free function is global (!) overloaded by a macro.
The macro "free" call free first and write then into pointer.
In a threading environment is this fatal.
I see no positive value in the code enabled by DEBUGNAMES (Zip,
zip.h, util.c). Until someone removes it, I would avoid it. Perhaps
someday, someone will add some useful code for malloc()+free()