Commit f38cf9cc authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Greg Kroah-Hartman

Staging: hv: vmbus: Properly handle memory allocation failure in channel.c

Properly handle memory allocation failure in channel.c.
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarAbhishek Kane <v-abkane@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 40961de3
...@@ -355,9 +355,24 @@ static int create_gpadl_header(void *kbuffer, u32 size, ...@@ -355,9 +355,24 @@ static int create_gpadl_header(void *kbuffer, u32 size,
sizeof(struct vmbus_channel_gpadl_body) + sizeof(struct vmbus_channel_gpadl_body) +
pfncurr * sizeof(u64); pfncurr * sizeof(u64);
msgbody = kzalloc(msgsize, GFP_KERNEL); msgbody = kzalloc(msgsize, GFP_KERNEL);
/* FIXME: we probably need to more if this fails */
if (!msgbody) if (!msgbody) {
struct vmbus_channel_msginfo *pos = NULL;
struct vmbus_channel_msginfo *tmp = NULL;
/*
* Free up all the allocated messages.
*/
list_for_each_entry_safe(pos, tmp,
&msgheader->submsglist,
msglistentry) {
list_del(&pos->msglistentry);
kfree(pos);
}
goto nomem; goto nomem;
}
msgbody->msgsize = msgsize; msgbody->msgsize = msgsize;
(*messagecount)++; (*messagecount)++;
gpadl_body = gpadl_body =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment