thunderbolt: Check return value of kmemdup() in icm_handle_event()
kmemdup() may return NULL if there is not enough memory available. Check this and bail out early in this case. While there move INIT_WORK() to happen after we have allocated all the memory needed for the event handling to avoid doing unnecessary work. Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
fea783e6e8
commit
3cc1c6de45
@ -1741,8 +1741,13 @@ static void icm_handle_event(struct tb *tb, enum tb_cfg_pkg_type type,
|
||||
if (!n)
|
||||
return;
|
||||
|
||||
INIT_WORK(&n->work, icm_handle_notification);
|
||||
n->pkg = kmemdup(buf, size, GFP_KERNEL);
|
||||
if (!n->pkg) {
|
||||
kfree(n);
|
||||
return;
|
||||
}
|
||||
|
||||
INIT_WORK(&n->work, icm_handle_notification);
|
||||
n->tb = tb;
|
||||
|
||||
queue_work(tb->wq, &n->work);
|
||||
|
Loading…
Reference in New Issue
Block a user