mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
old buffer overflow in moxa driver
I noticed that the moxa input checking security bug described by CVE-2005-0504 appears to remain unfixed upstream. The issue is described here: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-0504 Debian has been shipping the following patch from Andres Salomon. (akpm: it's a privileged operation) Signed-off-by: dann frazier <dannf@hp.com> Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
83ae1b79c8
commit
a2f72982e2
@ -1582,7 +1582,7 @@ copy:
|
|||||||
|
|
||||||
if(copy_from_user(&dltmp, argp, sizeof(struct dl_str)))
|
if(copy_from_user(&dltmp, argp, sizeof(struct dl_str)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS)
|
if(dltmp.cardno < 0 || dltmp.cardno >= MAX_BOARDS || dltmp.len < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
switch(cmd)
|
switch(cmd)
|
||||||
@ -2529,6 +2529,8 @@ static int moxaloadbios(int cardno, unsigned char __user *tmp, int len)
|
|||||||
void __iomem *baseAddr;
|
void __iomem *baseAddr;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(len < 0 || len > sizeof(moxaBuff))
|
||||||
|
return -EINVAL;
|
||||||
if(copy_from_user(moxaBuff, tmp, len))
|
if(copy_from_user(moxaBuff, tmp, len))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
baseAddr = moxa_boards[cardno].basemem;
|
baseAddr = moxa_boards[cardno].basemem;
|
||||||
@ -2576,7 +2578,7 @@ static int moxaload320b(int cardno, unsigned char __user *tmp, int len)
|
|||||||
void __iomem *baseAddr;
|
void __iomem *baseAddr;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(len > sizeof(moxaBuff))
|
if(len < 0 || len > sizeof(moxaBuff))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if(copy_from_user(moxaBuff, tmp, len))
|
if(copy_from_user(moxaBuff, tmp, len))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
@ -2596,6 +2598,8 @@ static int moxaloadcode(int cardno, unsigned char __user *tmp, int len)
|
|||||||
void __iomem *baseAddr, *ofsAddr;
|
void __iomem *baseAddr, *ofsAddr;
|
||||||
int retval, port, i;
|
int retval, port, i;
|
||||||
|
|
||||||
|
if(len < 0 || len > sizeof(moxaBuff))
|
||||||
|
return -EINVAL;
|
||||||
if(copy_from_user(moxaBuff, tmp, len))
|
if(copy_from_user(moxaBuff, tmp, len))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
baseAddr = moxa_boards[cardno].basemem;
|
baseAddr = moxa_boards[cardno].basemem;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user