Skip to content

Commit d5cd94f

Browse files
committed
CPreProcessor: (bugfix) don't return negative value other than EOF from unget-buffer
Fix #4222 When putting a char getting from the unget-buffer to a vstring, returning a nagative value caused a crash. This change focuses on values returned from ungetBufferGetcFromUngetBuffer, a function for getting from the unget-buffer. I will revise the functions putting values to the unget-buffer in the later commits. Signed-off-by: Masatake YAMATO <[email protected]>
1 parent e5b77bd commit d5cd94f

File tree

11 files changed

+11
-1
lines changed

11 files changed

+11
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This is a crash test.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
i"犬"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a(i'犬'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
i'犬'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a(i"犬"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This is a crash test.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
i"犬"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a(i'犬'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
i'犬'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
a(i"犬"

parsers/cpreprocessor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ static int ungetBufferGetcFromUngetBuffer (ungetBuffer *ungetBuffer)
652652
Assert(ungetBuffer->size > 0);
653653
Assert(ungetBuffer->dataSize > 0);
654654

655-
int c = *(ungetBuffer->pointer);
655+
unsigned char c = *(ungetBuffer->pointer);
656656
ungetBuffer->dataSize--;
657657
if(ungetBuffer->dataSize > 0)
658658
ungetBuffer->pointer++;

0 commit comments

Comments
 (0)