From: aurel32 Date: Wed, 17 Sep 2008 22:04:21 +0000 (+0000) Subject: [PATCH] usb-serial: Fix data corruption with usb serial emulation X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8109b9b6bf934a39e73c90fb804e2d5af02391d1;p=qmiga%2Fqemu.git [PATCH] usb-serial: Fix data corruption with usb serial emulation * Remove the unused send_buf variable and its constant. * Fix a math error The variables recv_ptr and recv_used are not large enough to hold the constant 384, which causes data corruption when the pointer is reset with: s->recv_ptr = (s->recv_ptr + len) % RECV_BUF; Signed-off-by: Jason Wessel Acked-by: Samuel Thibault Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5242 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/hw/usb-serial.c b/hw/usb-serial.c index 92d6dfdd42..40d04cb2db 100644 --- a/hw/usb-serial.c +++ b/hw/usb-serial.c @@ -22,7 +22,6 @@ do { printf("usb-serial: " fmt , ##args); } while (0) #endif #define RECV_BUF 384 -#define SEND_BUF 128 // Not used for now /* Commands */ #define FTDI_RESET 0 @@ -94,9 +93,8 @@ typedef struct { uint16_t vendorid; uint16_t productid; uint8_t recv_buf[RECV_BUF]; - uint8_t recv_ptr; - uint8_t recv_used; - uint8_t send_buf[SEND_BUF]; + uint16_t recv_ptr; + uint16_t recv_used; uint8_t event_chr; uint8_t error_chr; uint8_t event_trigger;