Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1c250bb authored by Bill Pemberton's avatar Bill Pemberton Committed by Greg Kroah-Hartman
Browse files

Staging: hv: remove ASSERT() in Channel.c



check memory allocation in VmbusChannelCreateGpadlHeader() and
return -ENOMEM if it fails

Signed-off-by: default avatarBill Pemberton <wfp5p@virginia.edu>
Cc: Hank Janssen <hjanssen@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent c3bf2e26
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -382,6 +382,8 @@ static int VmbusChannelCreateGpadlHeader(void *Kbuffer, u32 Size,
			  sizeof(struct vmbus_channel_gpadl_header) +
			  sizeof(struct gpa_range) + pfnCount * sizeof(u64);
		msgHeader =  kzalloc(msgSize, GFP_KERNEL);
		if (!msgHeader)
			goto nomem;

		INIT_LIST_HEAD(&msgHeader->SubMsgList);
		msgHeader->MessageSize = msgSize;
@@ -416,7 +418,9 @@ static int VmbusChannelCreateGpadlHeader(void *Kbuffer, u32 Size,
				  sizeof(struct vmbus_channel_gpadl_body) +
				  pfnCurr * sizeof(u64);
			msgBody = kzalloc(msgSize, GFP_KERNEL);
			ASSERT(msgBody);
			/* FIXME: we probably need to more if this fails */
			if (!msgBody)
				goto nomem;
			msgBody->MessageSize = msgSize;
			(*MessageCount)++;
			gpadlBody =
@@ -459,6 +463,10 @@ static int VmbusChannelCreateGpadlHeader(void *Kbuffer, u32 Size,
	}

	return 0;
nomem:
	kfree(msgHeader);
	kfree(msgBody);
	return -ENOMEM;
}

/*