don't return unitialised memory on error in ehci_alloc_sqtd()
authorjsg <jsg@openbsd.org>
Sun, 3 Aug 2014 14:30:28 +0000 (14:30 +0000)
committerjsg <jsg@openbsd.org>
Sun, 3 Aug 2014 14:30:28 +0000 (14:30 +0000)
It seems mpi introduced a problem into ehci.c rev 1.162
two weeks ago.  An error check that used to return NULL
now jumps to the end of the function, but sqtd isn't
initialised at that point.

ok miod@ deraadt@

sys/dev/usb/ehci.c

index 9da6506..05c006c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ehci.c,v 1.162 2014/07/12 20:13:48 mpi Exp $ */
+/*     $OpenBSD: ehci.c,v 1.163 2014/08/03 14:30:28 jsg Exp $ */
 /*     $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $        */
 
 /*
@@ -2363,7 +2363,7 @@ ehci_free_sqh(struct ehci_softc *sc, struct ehci_soft_qh *sqh)
 struct ehci_soft_qtd *
 ehci_alloc_sqtd(struct ehci_softc *sc)
 {
-       struct ehci_soft_qtd *sqtd;
+       struct ehci_soft_qtd *sqtd = NULL;
        usbd_status err;
        int i, offs;
        struct usb_dma dma;