Commit b53558a9 authored by Pavel Skripkin's avatar Pavel Skripkin Committed by David S. Miller
Browse files

net: caif: fix memory leak in caif_device_notify



In case of caif_enroll_dev() fail, allocated
link_support won't be assigned to the corresponding
structure. So simply free allocated pointer in case
of error

Fixes: 7c18d220 ("caif: Restructure how link caif link layer enroll")
Cc: stable@vger.kernel.org
Reported-and-tested-by: default avatar <syzbot+7ec324747ce876a29db6@syzkaller.appspotmail.com>
Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a2805dca
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -370,6 +370,7 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
	struct cflayer *layer, *link_support;
	int head_room = 0;
	struct caif_device_entry_list *caifdevs;
	int res;

	cfg = get_cfcnfg(dev_net(dev));
	caifdevs = caif_device_list(dev_net(dev));
@@ -395,8 +396,10 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
				break;
			}
		}
		caif_enroll_dev(dev, caifdev, link_support, head_room,
		res = caif_enroll_dev(dev, caifdev, link_support, head_room,
				&layer, NULL);
		if (res)
			cfserl_release(link_support);
		caifdev->flowctrl = dev_flowctrl;
		break;