[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH 3/3] usb1: Dauerhafter Pointer auf lokale Variable gefixt



! usb1: Hubs bleiben als dev->parent von USB-Geräten bestehen und müssen
  daher auch nach dem Abschluss des Scans noch gültig sein. malloc statt
  lokaler Variablen hilft.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/modules/usb/usb1/detect.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/modules/usb/usb1/detect.c b/src/modules/usb/usb1/detect.c
index 426933b..a99fd36 100644
--- a/src/modules/usb/usb1/detect.c
+++ b/src/modules/usb/usb1/detect.c
@@ -426,7 +426,9 @@ static void rh_disable(struct usb_hub* hub, int port)
 
 void scan_hc(struct usb_hc* hc)
 {
-    struct usb_hub rh = {
+    struct usb_hub* rh = malloc(sizeof(*rh));
+
+    *rh = (struct usb_hub) {
         .dev = {
             .hc = hc
         },
@@ -438,5 +440,5 @@ void scan_hc(struct usb_hc* hc)
         .scan_port = &rh_scan
     };
 
-    scan_hub(&rh);
+    scan_hub(rh);
 }
-- 
1.6.0.2