OSDN Git Service

asix: Fix small memory leak in ax88772_unbind()
authorDean Jenkins <Dean_Jenkins@mentor.com>
Mon, 7 Aug 2017 08:50:16 +0000 (09:50 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Aug 2017 17:10:19 +0000 (10:10 -0700)
commitd0c8f338ab41438bdf8472cb4209d4ab54d439d5
treeafd69174d5166583e8f7a2c6d36b6c4247a7a077
parent960eb4eeaa47a3a5061a4e47e28411e85840ab2c
asix: Fix small memory leak in ax88772_unbind()

When Ethernet frames span mulitple URBs, the netdev buffer memory
pointed to by the asix_rx_fixup_info structure remains allocated
during the time gap between the 2 executions of asix_rx_fixup_internal().

This means that if ax88772_unbind() is called within this time
gap to free the memory of the parent private data structure then
a memory leak of the part filled netdev buffer memory will occur.

Therefore, create a new function asix_rx_fixup_common_free() to
free the memory of the netdev buffer and add a call to
asix_rx_fixup_common_free() from inside ax88772_unbind().

Consequently when an unbind occurs part way through receiving
an Ethernet frame, the netdev buffer memory that is holding part
of the received Ethernet frame will now be freed.

Signed-off-by: Dean Jenkins <Dean_Jenkins@mentor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/asix.h
drivers/net/usb/asix_common.c
drivers/net/usb/asix_devices.c