• Dean Jenkins's avatar
    asix: Fix small memory leak in ax88772_unbind() · d0c8f338
    Dean Jenkins authored
    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: default avatarDean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d0c8f338
asix_common.c 19.5 KB