diff options
| author | 2005-08-01 05:36:47 +0000 | |
|---|---|---|
| committer | 2005-08-01 05:36:47 +0000 | |
| commit | 71a5dfcea878f0a686cfcb96b61515f5a2c45769 (patch) | |
| tree | 53b51b8cc6ff82c6607bfc36860b71952e187ab7 /sys/dev/usb/if_url.c | |
| parent | expose arc4random_bytes() API; ok deraadt@ (diff) | |
| download | wireguard-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.c | 9 |
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); |
