Fix possible null pointer dereference

It's possible that if the FILE passed to yy_create_buffer is at the
end-of file, there may be a null pointer dereference.

This should hopefully fix that.

Found with clang-tools' scan-build:

src/asm/lexer.c:281:25: warning: Array access (via field 'pBuffer')
 results in a null pointer dereference
        pBuffer->pBuffer[size] = 0;
                 ~~~~~~~       ^
1 warning generated.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
This commit is contained in:
JL2210
2020-04-08 17:25:26 -04:00
parent 40f8e33e6c
commit 5863cd10b8

View File

@@ -254,7 +254,7 @@ YY_BUFFER_STATE yy_create_buffer(FILE *f)
else if (capacity == 0)
capacity = 1;
while (!feof(f)) {
do {
if (buf == NULL || size >= capacity) {
if (buf)
capacity *= 2;
@@ -273,7 +273,7 @@ YY_BUFFER_STATE yy_create_buffer(FILE *f)
fatalerror("%s: fread error", __func__);
size += read_count;
}
} while (!feof(f));
pBuffer->pBufferRealStart = buf;
pBuffer->pBufferStart = buf + SAFETYMARGIN;