From: Bill Pemberton <[email protected]>

VmbusChannelOpen() will now return -EINVAL if UserDataLen is too big.
Previously this was handled by an assert.

Signed-off-by: Bill Pemberton <[email protected]>
Cc: Hank Janssen <[email protected]>
Cc: Haiyang Zhang <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/hv/Channel.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/hv/Channel.c b/drivers/staging/hv/Channel.c
index fdd4411..bd1a336 100644
--- a/drivers/staging/hv/Channel.c
+++ b/drivers/staging/hv/Channel.c
@@ -258,7 +258,11 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 
SendRingBufferSize,
                                                  PAGE_SHIFT;
        openMsg->ServerContextAreaGpadlHandle = 0; /* TODO */
 
-       ASSERT(UserDataLen <= MAX_USER_DEFINED_BYTES);
+       if (UserDataLen > MAX_USER_DEFINED_BYTES) {
+               err = -EINVAL;
+               goto errorout;
+       }
+
        if (UserDataLen)
                memcpy(openMsg->UserData, UserData, UserDataLen);
 
-- 
1.7.0.3

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to