summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/if_url.c
diff options
context:
space:
mode:
authorbrad <brad@openbsd.org>2005-08-01 05:36:47 +0000
committerbrad <brad@openbsd.org>2005-08-01 05:36:47 +0000
commit71a5dfcea878f0a686cfcb96b61515f5a2c45769 (patch)
tree53b51b8cc6ff82c6607bfc36860b71952e187ab7 /sys/dev/usb/if_url.c
parentexpose arc4random_bytes() API; ok deraadt@ (diff)
downloadwireguard-openbsd-71a5dfcea878f0a686cfcb96b61515f5a2c45769.tar.xz
wireguard-openbsd-71a5dfcea878f0a686cfcb96b61515f5a2c45769.zip
Don't keep the devinfo string on the stack, instead use malloc/free.
This should cure some rare stack overflows. From augustss NetBSD ok dlg@ pascoe@
Diffstat (limited to 'sys/dev/usb/if_url.c')
-rw-r--r--sys/dev/usb/if_url.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/usb/if_url.c b/sys/dev/usb/if_url.c
index bc419abf913..e3337d094ef 100644
--- a/sys/dev/usb/if_url.c
+++ b/sys/dev/usb/if_url.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_url.c,v 1.25 2005/07/19 11:42:37 jsg Exp $ */
+/* $OpenBSD: if_url.c,v 1.26 2005/08/01 05:36:48 brad Exp $ */
/* $NetBSD: if_url.c,v 1.6 2002/09/29 10:19:21 martin Exp $ */
/*
* Copyright (c) 2001, 2002
@@ -206,16 +206,17 @@ USB_ATTACH(url)
usbd_status err;
usb_interface_descriptor_t *id;
usb_endpoint_descriptor_t *ed;
- char devinfo[1024];
+ char *devinfop;
char *devname = USBDEVNAME(sc->sc_dev);
struct ifnet *ifp;
struct mii_data *mii;
u_char eaddr[ETHER_ADDR_LEN];
int i, s;
- usbd_devinfo(dev, 0, devinfo, sizeof devinfo);
+ devinfop = usbd_devinfo_alloc(dev, 0);
USB_ATTACH_SETUP;
- printf("%s: %s\n", devname, devinfo);
+ printf("%s: %s\n", devname, devinfop);
+ usbd_devinfo_free(devinfop);
/* Move the device into the configured state. */
err = usbd_set_config_no(dev, URL_CONFIG_NO, 1);