From c15a0082140073168136e13364d22dcc0da94825 Mon Sep 17 00:00:00 2001 From: dann frazier Date: Tue, 8 May 2007 00:31:39 -0700 Subject: [PATCH] --- yaml --- r: 54727 b: refs/heads/master c: a2f72982e22b96862f8f15272732bd316d4db040 h: refs/heads/master i: 54725: 8b94e94d4174b3dbdee8b0332336576584b9ee67 54723: 8e846e28959026eb0cebbdaf5d51da32b5ce11fd 54719: 45d1248e92d6ec087e2bcad8389a6a512eea4c5c v: v3 --- [refs] | 2 +- trunk/drivers/char/moxa.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5399f919455f..0135f4e7491e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 83ae1b79c898838e16ac8cde69b39d22d36fb035 +refs/heads/master: a2f72982e22b96862f8f15272732bd316d4db040 diff --git a/trunk/drivers/char/moxa.c b/trunk/drivers/char/moxa.c index 7dbaee8d9402..e0d35c20c04f 100644 --- a/trunk/drivers/char/moxa.c +++ b/trunk/drivers/char/moxa.c @@ -1582,7 +1582,7 @@ int MoxaDriverIoctl(unsigned int cmd, unsigned long arg, int port) if(copy_from_user(&dltmp, argp, sizeof(struct dl_str))) return -EFAULT; - if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS) + if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS || dltmp.len < 0) return -EINVAL; switch(cmd) @@ -2529,6 +2529,8 @@ static int moxaloadbios(int cardno, unsigned char __user *tmp, int len) void __iomem *baseAddr; int i; + if(len < 0 || len > sizeof(moxaBuff)) + return -EINVAL; if(copy_from_user(moxaBuff, tmp, len)) return -EFAULT; baseAddr = moxa_boards[cardno].basemem; @@ -2576,7 +2578,7 @@ static int moxaload320b(int cardno, unsigned char __user *tmp, int len) void __iomem *baseAddr; int i; - if(len > sizeof(moxaBuff)) + if(len < 0 || len > sizeof(moxaBuff)) return -EINVAL; if(copy_from_user(moxaBuff, tmp, len)) return -EFAULT; @@ -2596,6 +2598,8 @@ static int moxaloadcode(int cardno, unsigned char __user *tmp, int len) void __iomem *baseAddr, *ofsAddr; int retval, port, i; + if(len < 0 || len > sizeof(moxaBuff)) + return -EINVAL; if(copy_from_user(moxaBuff, tmp, len)) return -EFAULT; baseAddr = moxa_boards[cardno].basemem;