usb-bus: use snprintf
Avoid this warning from OpenBSD linker: LINK i386-softmmu/qemu ../usb-bus.o(.text+0x27c): In function `usb_get_fw_dev_path': /src/qemu/hw/usb-bus.c:294: warning: sprintf() is often misused, please use snprintf() Signed-off-by: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
ee59e6b3bf
commit
ea87e95f8f
12
hw/usb-bus.c
12
hw/usb-bus.c
@ -298,20 +298,22 @@ static char *usb_get_fw_dev_path(DeviceState *qdev)
|
||||
{
|
||||
USBDevice *dev = DO_UPCAST(USBDevice, qdev, qdev);
|
||||
char *fw_path, *in;
|
||||
int pos = 0;
|
||||
ssize_t pos = 0, fw_len;
|
||||
long nr;
|
||||
|
||||
fw_path = qemu_malloc(32 + strlen(dev->port->path) * 6);
|
||||
fw_len = 32 + strlen(dev->port->path) * 6;
|
||||
fw_path = qemu_malloc(fw_len);
|
||||
in = dev->port->path;
|
||||
while (true) {
|
||||
while (fw_len - pos > 0) {
|
||||
nr = strtol(in, &in, 10);
|
||||
if (in[0] == '.') {
|
||||
/* some hub between root port and device */
|
||||
pos += sprintf(fw_path + pos, "hub@%ld/", nr);
|
||||
pos += snprintf(fw_path + pos, fw_len - pos, "hub@%ld/", nr);
|
||||
in++;
|
||||
} else {
|
||||
/* the device itself */
|
||||
pos += sprintf(fw_path + pos, "%s@%ld", qdev_fw_name(qdev), nr);
|
||||
pos += snprintf(fw_path + pos, fw_len - pos, "%s@%ld",
|
||||
qdev_fw_name(qdev), nr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user