From: Toby C. <th...@us...> - 2007-12-06 11:12:38
|
Update of /cvsroot/playerstage/code/player/server/drivers/laser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31543 Modified Files: sicks3000.cc Log Message: fix buffer overflow Index: sicks3000.cc =================================================================== RCS file: /cvsroot/playerstage/code/player/server/drivers/laser/sicks3000.cc,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** sicks3000.cc 6 Dec 2007 02:35:36 -0000 1.7 --- sicks3000.cc 6 Dec 2007 19:12:39 -0000 1.8 *************** *** 314,320 **** { player_opaque_data_t * recv = reinterpret_cast<player_opaque_data_t * > (data); - memmove(&rx_buffer[rx_count], recv->data, recv->data_count); rx_count += recv->data_count; ! ProcessLaserData(); return 0; } --- 314,328 ---- { player_opaque_data_t * recv = reinterpret_cast<player_opaque_data_t * > (data); rx_count += recv->data_count; ! if (rx_count > rx_buffer_size) ! { ! PLAYER_WARN("S3000 Buffer Full"); ! rx_count = 0; ! } ! else ! { ! memmove(&rx_buffer[rx_count], recv->data, recv->data_count); ! ProcessLaserData(); ! } return 0; } |