diff options
author | mdodd <mdodd@FreeBSD.org> | 2003-06-25 19:58:38 +0000 |
---|---|---|
committer | mdodd <mdodd@FreeBSD.org> | 2003-06-25 19:58:38 +0000 |
commit | 966e8b965c0bf413d54c729538dcd4da9dbe4e7b (patch) | |
tree | 24099cf63184fefdf2dcd44d03ba8ee23c7d833b /sys/dev | |
parent | f110737095bad00b2c18d365c71ec0c778485a3e (diff) | |
download | FreeBSD-src-966e8b965c0bf413d54c729538dcd4da9dbe4e7b.zip FreeBSD-src-966e8b965c0bf413d54c729538dcd4da9dbe4e7b.tar.gz |
Set pointers to NULL after free() to prevent multiple free().
PR: kern/48808
Submitted by: Eugene Grosbein <eugen@grosbein.pp.ru>
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/usb/uhid.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/usb/uhid.c b/sys/dev/usb/uhid.c index 4095ee9..1c4684f 100644 --- a/sys/dev/usb/uhid.c +++ b/sys/dev/usb/uhid.c @@ -425,6 +425,8 @@ uhidopen(dev_t dev, int flag, int mode, usb_proc_ptr p) "error=%d\n",err)); free(sc->sc_ibuf, M_USBDEV); free(sc->sc_obuf, M_USBDEV); + sc->sc_ibuf = sc->sc_obuf = NULL; + sc->sc_state &= ~UHID_OPEN; return (EIO); } @@ -455,6 +457,7 @@ uhidclose(dev_t dev, int flag, int mode, usb_proc_ptr p) free(sc->sc_ibuf, M_USBDEV); free(sc->sc_obuf, M_USBDEV); + sc->sc_ibuf = sc->sc_obuf = NULL; sc->sc_state &= ~UHID_OPEN; |