|
From: Elias N. <eli...@us...> - 2003-10-29 16:21:45
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/common In directory sc8-pr-cvs1:/tmp/cvs-serv32202/common Modified Files: common_tools.cpp common_tools.h Log Message: Fixed nasty buffer overflow bug in event_queue_t Index: common_tools.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/common/common_tools.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/common_tools.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- common_tools.cpp 22 Oct 2003 10:57:18 -0000 1.3 +++ common_tools.cpp 29 Oct 2003 16:21:42 -0000 1.4 @@ -39,6 +39,10 @@ #include "common_tools.h" +static void incListStart(event_queue_t *queue) { + queue->list_start = (queue->list_start + 1)%EVENT_BUFFER_SIZE; +} + void initEventQueue(event_queue_t *event_queue) { event_queue->list_start = 0; event_queue->list_end = 0; @@ -64,7 +68,7 @@ int output_index = event_index*event_size; for (int i = 0; i < event_size; i++) { queue->output_event_buffer[output_index] = queue->input_event_buffer[queue->list_start]; - queue->list_start = (queue->list_start + 1)%EVENT_BUFFER_SIZE; + incListStart(queue); output_index++; } } Index: common_tools.h CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/common/common_tools.h =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/common_tools.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- common_tools.h 22 Oct 2003 10:57:18 -0000 1.2 +++ common_tools.h 29 Oct 2003 16:21:42 -0000 1.3 @@ -42,7 +42,8 @@ #include <jni.h> -#define EVENT_BUFFER_SIZE 100 +// Must be x * max_event_size + 1 +#define EVENT_BUFFER_SIZE (25 * 4 + 1) typedef struct { unsigned char input_event_buffer[EVENT_BUFFER_SIZE]; |