diff options
author | 2003-05-07 04:33:33 +0000 | |
---|---|---|
committer | 2003-05-07 04:33:33 +0000 | |
commit | e8c2dba342a739dd9dd4e06ec2c2610ec67289db (patch) | |
tree | e1c131047d365a49419dd32462fc78c5f03956e9 /sys/dev/usb/usb_subr.c | |
parent | use strlcpy; itojun ok (diff) | |
download | wireguard-openbsd-e8c2dba342a739dd9dd4e06ec2c2610ec67289db.tar.xz wireguard-openbsd-e8c2dba342a739dd9dd4e06ec2c2610ec67289db.zip |
string cleanup; nate ok
Diffstat (limited to 'sys/dev/usb/usb_subr.c')
-rw-r--r-- | sys/dev/usb/usb_subr.c | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c index 2ed030e3dbf..8d59e0c770f 100644 --- a/sys/dev/usb/usb_subr.c +++ b/sys/dev/usb/usb_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usb_subr.c,v 1.23 2003/04/27 11:22:54 ho Exp $ */ +/* $OpenBSD: usb_subr.c,v 1.24 2003/05/07 04:33:33 deraadt Exp $ */ /* $NetBSD: usb_subr.c,v 1.87 2001/08/15 00:04:59 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */ @@ -281,31 +281,39 @@ usbd_devinfo_vp(usbd_device_handle dev, char *v, char *p, int usedev) } int -usbd_printBCD(char *cp, int bcd) +usbd_printBCD(char *cp, size_t len, int bcd) { - return (sprintf(cp, "%x.%02x", bcd >> 8, bcd & 0xff)); + return (snprintf(cp, len, "%x.%02x", bcd >> 8, bcd & 0xff)); } void -usbd_devinfo(usbd_device_handle dev, int showclass, char *cp) +usbd_devinfo(usbd_device_handle dev, int showclass, char *base, size_t len) { usb_device_descriptor_t *udd = &dev->ddesc; char vendor[USB_MAX_STRING_LEN]; char product[USB_MAX_STRING_LEN]; + char *cp = base; int bcdDevice, bcdUSB; usbd_devinfo_vp(dev, vendor, product, 1); - cp += sprintf(cp, "%s %s", vendor, product); - if (showclass) - cp += sprintf(cp, ", class %d/%d", - udd->bDeviceClass, udd->bDeviceSubClass); + snprintf(cp, len, "%s %s", vendor, product); + cp += strlen(cp); + if (showclass) { + snprintf(cp, base + len - cp, ", class %d/%d", + udd->bDeviceClass, udd->bDeviceSubClass); + cp += strlen(cp); + } bcdUSB = UGETW(udd->bcdUSB); bcdDevice = UGETW(udd->bcdDevice); - cp += sprintf(cp, ", rev "); - cp += usbd_printBCD(cp, bcdUSB); + snprintf(cp, base + len - cp, ", rev "); + cp += strlen(cp); + usbd_printBCD(cp, base + len - cp, bcdUSB); + cp += strlen(cp); *cp++ = '/'; - cp += usbd_printBCD(cp, bcdDevice); - cp += sprintf(cp, ", addr %d", dev->address); + usbd_printBCD(cp, base + len - cp, bcdDevice); + cp += strlen(cp); + snprintf(cp, base + len - cp, ", addr %d", dev->address); + cp += strlen(cp); *cp = 0; } @@ -1101,7 +1109,7 @@ usbd_print(void *aux, const char *pnp) if (pnp) { if (!uaa->usegeneric) return (QUIET); - usbd_devinfo(uaa->device, 1, devinfo); + usbd_devinfo(uaa->device, 1, devinfo, sizeof devinfo); printf("%s, %s", devinfo, pnp); } if (uaa->port != 0) @@ -1196,7 +1204,8 @@ usbd_fill_deviceinfo(usbd_device_handle dev, struct usb_device_info *di, di->udi_addr = dev->address; di->udi_cookie = dev->cookie; usbd_devinfo_vp(dev, di->udi_vendor, di->udi_product, usedev); - usbd_printBCD(di->udi_release, UGETW(dev->ddesc.bcdDevice)); + usbd_printBCD(di->udi_release, sizeof di->udi_release, + UGETW(dev->ddesc.bcdDevice)); di->udi_vendorNo = UGETW(dev->ddesc.idVendor); di->udi_productNo = UGETW(dev->ddesc.idProduct); di->udi_releaseNo = UGETW(dev->ddesc.bcdDevice); |