diff mbox series

thunderbolt: check the return value of kmemdup()

Message ID tencent_1AB342AE1B4723454E78A4D2FD3F33C81306@qq.com
State New
Headers show
Series thunderbolt: check the return value of kmemdup() | expand

Commit Message

Xiaoke Wang Dec. 12, 2021, 4:51 p.m. UTC
kmemdup() return NULL when some internal memory errors happen, it is
better to check the return value of it. Otherwise, some memory errors
will not be catched in time and may further result in wrong memory
access.

Signed-off-by: xkernel <xkernel.wang@foxmail.com>
---
 drivers/thunderbolt/icm.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--

Comments

Greg KH Dec. 13, 2021, 6:31 a.m. UTC | #1
On Mon, Dec 13, 2021 at 02:27:28PM +0800, Xiaoke Wang wrote:
> On Mon, Dec 13, 2021 02:10 PM, Greg KH wrote:
> > kmemdup() return NULL when some internal memory errors happen, it is
> > better to check the return value of it. Otherwise, some memory errors
> > will not be catched in time and may further result in wrong memory> access.
> > 
> > Signed-off-by: xkernel <xkernel.wang@foxmail.com>
> >
> > Please use your "full" name, I doubt you sign documents as "xkernel". :)
> >
> > thanks,
> >
> > greg k-h
> 
> I am very sorry about that, my full name is "Xiaoke Wang".

Great, please fix up and resend (also fix the From: line in your email
client to show that.)

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index 6255f1e..fff0c74 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -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);