senna
senna copied to clipboard
Fixed bug regarding New lines in input files
The bug at hand involved a file which had 2 or more new lines before any other textual data. The reason for the bug was that the tokenizer was not reading anything (ie a new line), so the value of nitems being passed to realloc was 0.
The C standard states:
C90 (C++98) Otherwise, if size is zero, the memory previously allocated at ptr is deallocated as if a call to free was made, and a null pointer is returned.
C99/C11 (C++11) If size is zero, the return value depends on the particular library implementation: it may either be a null pointer or some other location that shall not be dereferenced.
Thus, the if(!ptr) block would always be entered resulting in a SENNA_error: "memory allocation error .."