Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b042e2b2 authored by Pavel Skripkin's avatar Pavel Skripkin Committed by Greg Kroah-Hartman
Browse files

net: caif: fix memory leak in caif_device_notify



commit b53558a950a89824938e9811eddfc8efcd94e1bb upstream.

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>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a3536dce
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -366,6 +366,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));
@@ -391,8 +392,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;