isdnloop: Validate NUL-terminated strings from user.
Return -EINVAL unless all of user-given strings are correctly NUL-terminated. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
79eb9d28c9
commit
77bc6bed71
|
@ -1070,6 +1070,12 @@ isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
if (copy_from_user((char *) &sdef, (char *) sdefp, sizeof(sdef)))
|
if (copy_from_user((char *) &sdef, (char *) sdefp, sizeof(sdef)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
if (!memchr(sdef.num[i], 0, sizeof(sdef.num[i])))
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
spin_lock_irqsave(&card->isdnloop_lock, flags);
|
spin_lock_irqsave(&card->isdnloop_lock, flags);
|
||||||
switch (sdef.ptype) {
|
switch (sdef.ptype) {
|
||||||
case ISDN_PTYPE_EURO:
|
case ISDN_PTYPE_EURO:
|
||||||
|
|
Loading…
Reference in New Issue