usb_eth: Remove invalid free of GenericUsbDevice.dev_data
authorJulius Werner <jwerner@chromium.org>
Sat, 6 Aug 2016 03:25:42 +0000 (20:25 -0700)
committerchrome-bot <chrome-bot@chromium.org>
Wed, 10 Aug 2016 05:10:49 +0000 (22:10 -0700)
The USB ethernet driver framework currently frees a pointer on USB
unplug/shutdown that had never been initialized. This might have stemmed
from confusion between the NetDevice and GenericUsbDevice objects...
both provide a dev_data member pointer for use by specific driver
instantiations, but the latter's is not actually used by this driver.
(The former's is just used as a back-pointer to the GenericUsbDevice,
which already gets freed by the generic USB stack and doesn't need to be
freed by the driver.)

BRANCH=None
BUG=None
TEST=With improved memory allocator error messages, I no longer see an
out-of-heap free(0x840) on Kevin.

Change-Id: I30adc14659f9cec7c342df760ebef83ff422f9ae
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/366859
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
src/drivers/net/usb_eth.c

index 884bb1a..ef98ede 100644 (file)
@@ -105,7 +105,6 @@ static int usb_eth_probe(GenericUsbDevice *dev)
 static void usb_eth_remove(GenericUsbDevice *dev)
 {
        net_remove_device(usb_eth_net_device);
-       free(dev->dev_data);
 }
 
 static void usb_net_poller(struct NetPoller *poller)