isdn/kcapi: return -EFAULT on copy_from_user errors
copy_from_user() returns the number of bytes remaining but we should return -EFAULT here. The error code gets returned to the user. Both old_capi_manufacturer() and capi20_manufacturer() had other places that already returned -EFAULT so this won't break anything. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
3b21b508ec
commit
60a5711db6
@@ -1020,12 +1020,12 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
|
|||||||
if (cmd == AVMB1_ADDCARD) {
|
if (cmd == AVMB1_ADDCARD) {
|
||||||
if ((retval = copy_from_user(&cdef, data,
|
if ((retval = copy_from_user(&cdef, data,
|
||||||
sizeof(avmb1_carddef))))
|
sizeof(avmb1_carddef))))
|
||||||
return retval;
|
return -EFAULT;
|
||||||
cdef.cardtype = AVM_CARDTYPE_B1;
|
cdef.cardtype = AVM_CARDTYPE_B1;
|
||||||
} else {
|
} else {
|
||||||
if ((retval = copy_from_user(&cdef, data,
|
if ((retval = copy_from_user(&cdef, data,
|
||||||
sizeof(avmb1_extcarddef))))
|
sizeof(avmb1_extcarddef))))
|
||||||
return retval;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
cparams.port = cdef.port;
|
cparams.port = cdef.port;
|
||||||
cparams.irq = cdef.irq;
|
cparams.irq = cdef.irq;
|
||||||
@@ -1218,7 +1218,7 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
|
|||||||
kcapi_carddef cdef;
|
kcapi_carddef cdef;
|
||||||
|
|
||||||
if ((retval = copy_from_user(&cdef, data, sizeof(cdef))))
|
if ((retval = copy_from_user(&cdef, data, sizeof(cdef))))
|
||||||
return retval;
|
return -EFAULT;
|
||||||
|
|
||||||
cparams.port = cdef.port;
|
cparams.port = cdef.port;
|
||||||
cparams.irq = cdef.irq;
|
cparams.irq = cdef.irq;
|
||||||
|
Reference in New Issue
Block a user