usb-redir: fix stack overflow in usbredir_log_data
Don't reinvent a broken wheel, just use the hexdump function we have. Impact: low, broken code doesn't run unless you have debug logging enabled. Reported-by: 李强 <liqiang6-s@360.cn> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20170509110128.27261-1-kraxel@redhat.com
This commit is contained in:
parent
a92ff8c123
commit
bd4a683505
@ -229,21 +229,10 @@ static void usbredir_log(void *priv, int level, const char *msg)
|
||||
static void usbredir_log_data(USBRedirDevice *dev, const char *desc,
|
||||
const uint8_t *data, int len)
|
||||
{
|
||||
int i, j, n;
|
||||
|
||||
if (dev->debug < usbredirparser_debug_data) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i += j) {
|
||||
char buf[128];
|
||||
|
||||
n = sprintf(buf, "%s", desc);
|
||||
for (j = 0; j < 8 && i + j < len; j++) {
|
||||
n += sprintf(buf + n, " %02X", data[i + j]);
|
||||
}
|
||||
error_report("%s", buf);
|
||||
}
|
||||
qemu_hexdump((char *)data, stderr, desc, len);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user