diff options
author | Tong Zhang <ztong0001@gmail.com> | 2021-03-14 21:08:36 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-03-15 00:17:48 +0300 |
commit | 6577b9a551aedb86bca6d4438c28386361845108 (patch) | |
tree | 4ddf370837f645d0d38984311ac199013c218be4 /net/qrtr | |
parent | ad236ccde19a93309cba25fb8c9e789b9c69397c (diff) | |
download | linux-6577b9a551aedb86bca6d4438c28386361845108.tar.xz |
net: arcnet: com20020 fix error handling
There are two issues when handling error case in com20020pci_probe()
1. priv might be not initialized yet when calling com20020pci_remove()
from com20020pci_probe(), since the priv is set at the very last but it
can jump to error handling in the middle and priv remains NULL.
2. memory leak - the net device is allocated in alloc_arcdev but not
properly released if error happens in the middle of the big for loop
[ 1.529110] BUG: kernel NULL pointer dereference, address: 0000000000000008
[ 1.531447] RIP: 0010:com20020pci_remove+0x15/0x60 [com20020_pci]
[ 1.536805] Call Trace:
[ 1.536939] com20020pci_probe+0x3f2/0x48c [com20020_pci]
[ 1.537226] local_pci_probe+0x48/0x80
[ 1.539918] com20020pci_init+0x3f/0x1000 [com20020_pci]
Signed-off-by: Tong Zhang <ztong0001@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/qrtr')
0 files changed, 0 insertions, 0 deletions