]> Kevux Git Server - fll/commit
Bugfix: fix logic flaws with file input buffers
authorKevin Day <kevin@kevux.org>
Sun, 11 Mar 2012 02:58:10 +0000 (20:58 -0600)
committerKevin Day <kevin@kevux.org>
Sun, 11 Mar 2012 03:08:57 +0000 (21:08 -0600)
commit27abc16984b76ddaad6bdec352087fd6e8f6c7da
tree86b711ed06742f15be7b7e7e68e118fe82d5e383
parent23ff330880ee7f0364c485e6d55aae3c6426db3c
Bugfix: fix logic flaws with file input buffers

The first mistake made was that when adding the fread result to the buffer, the actual size of each read byte needs to be taken into mind.
If the characters were wide characters with a byte size of 2 instead of 1, then the buffer->used counter would increase at a rate of 2x of what was actually in use.

The second mistake made was that the fread max read size was being set to the entire buffer size instead of what was available.
This should have been producing some sort of buffer overflow, but none was reported.
Instead of request a read of (buffer->size - 1), only request a size
equal to that of the available allocated space (buffer->size - buffer->used - 1).

The third mistake made was not performing sanity checking on the buffer->used and buffer->size variables.
level_0/f_file/c/file.c
level_1/fl_file/c/file.c