net: rocker: fix a potential NULL pointer dereference

In case kzalloc fails, the fix releases resources and returns
NOTIFY_BAD to avoid NULL pointer dereference.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Kangjie Lu 2019-03-11 02:06:06 -05:00 committed by David S. Miller
parent 4280b73092
commit 5c149314d9
1 changed files with 5 additions and 0 deletions

View File

@ -2805,6 +2805,11 @@ static int rocker_switchdev_event(struct notifier_block *unused,
memcpy(&switchdev_work->fdb_info, ptr, memcpy(&switchdev_work->fdb_info, ptr,
sizeof(switchdev_work->fdb_info)); sizeof(switchdev_work->fdb_info));
switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC);
if (unlikely(!switchdev_work->fdb_info.addr)) {
kfree(switchdev_work);
return NOTIFY_BAD;
}
ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, ether_addr_copy((u8 *)switchdev_work->fdb_info.addr,
fdb_info->addr); fdb_info->addr);
/* Take a reference on the rocker device */ /* Take a reference on the rocker device */