baojie/senna — pull request #1 by future28 (2014-01-09 11:28:19+00:00)
Title: 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 .."