Weird checks of malloc
The code is full of this pattern:
a = malloc (b); if (!a && b > 0) return E_NOMEM;
But the norm says:
If the size of the space requested is zero, the behavior is implementation- defined: either a null pointer is returned, or the behavior is as if the size were some nonzero value, except that the returned pointer shall not be used to access an object.
This is worrying since after this pattern, there is sometimes functions (like +fread+) that are dereferencing the malloc-returned pointer.
(from redmine: created on 2014-03-22)