Commit 435f08a7 authored by Dan Carpenter's avatar Dan Carpenter Committed by David S. Miller

isdn: fix a wrapping bug in isdn_ppp_ioctl()

"protos" is an array of unsigned longs and "i" is the number of bits in
an unsigned long so we need to use 1UL as well to prevent the shift
from wrapping around.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 34e02aa1
...@@ -595,7 +595,7 @@ isdn_ppp_ioctl(int min, struct file *file, unsigned int cmd, unsigned long arg) ...@@ -595,7 +595,7 @@ isdn_ppp_ioctl(int min, struct file *file, unsigned int cmd, unsigned long arg)
j = ipc->num / (sizeof(long) * 8); j = ipc->num / (sizeof(long) * 8);
i = ipc->num % (sizeof(long) * 8); i = ipc->num % (sizeof(long) * 8);
if (j < 8) if (j < 8)
protos[j] |= (0x1 << i); protos[j] |= (1UL << i);
ipc = ipc->next; ipc = ipc->next;
} }
if ((r = set_arg(argp, protos, 8 * sizeof(long)))) if ((r = set_arg(argp, protos, 8 * sizeof(long))))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment