mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 01:41:39 +00:00
net: caif: fix memory leak in caif_device_notify
commitb53558a950
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:7c18d2205e
("caif: Restructure how link caif link layer enroll") Cc: stable@vger.kernel.org Reported-and-tested-by: syzbot+7ec324747ce876a29db6@syzkaller.appspotmail.com Signed-off-by: Pavel Skripkin <paskripkin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c97cdb70b7
commit
f52f4fd672
1 changed files with 4 additions and 1 deletions
|
@ -369,6 +369,7 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
|
||||||
struct cflayer *layer, *link_support;
|
struct cflayer *layer, *link_support;
|
||||||
int head_room = 0;
|
int head_room = 0;
|
||||||
struct caif_device_entry_list *caifdevs;
|
struct caif_device_entry_list *caifdevs;
|
||||||
|
int res;
|
||||||
|
|
||||||
cfg = get_cfcnfg(dev_net(dev));
|
cfg = get_cfcnfg(dev_net(dev));
|
||||||
caifdevs = caif_device_list(dev_net(dev));
|
caifdevs = caif_device_list(dev_net(dev));
|
||||||
|
@ -394,8 +395,10 @@ static int caif_device_notify(struct notifier_block *me, unsigned long what,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
caif_enroll_dev(dev, caifdev, link_support, head_room,
|
res = caif_enroll_dev(dev, caifdev, link_support, head_room,
|
||||||
&layer, NULL);
|
&layer, NULL);
|
||||||
|
if (res)
|
||||||
|
cfserl_release(link_support);
|
||||||
caifdev->flowctrl = dev_flowctrl;
|
caifdev->flowctrl = dev_flowctrl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue