Skip to content

Commit

Permalink
Staging: hv: vmbus: Properly handle memory allocation failure in chan…
Browse files Browse the repository at this point in the history
…nel.c

Properly handle memory allocation failure in channel.c.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Jun 7, 2011
1 parent 40961de commit f38cf9c
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions drivers/staging/hv/channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -355,9 +355,24 @@ static int create_gpadl_header(void *kbuffer, u32 size,
sizeof(struct vmbus_channel_gpadl_body) +
pfncurr * sizeof(u64);
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;
}

msgbody->msgsize = msgsize;
(*messagecount)++;
gpadl_body =
Expand Down

0 comments on commit f38cf9c

Please sign in to comment.