diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-10-17 03:10:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-17 11:18:49 -0400 |
commit | 7786ce192fc4917fb9b789dd823476ff8fd6cf66 (patch) | |
tree | 3ec803c1c77ff22bfe6076ea4d90a27f888b4fad /drivers/isdn/capi/capidrv.c | |
parent | 04518bfe8eac2e82b476fb2b0093527adc2bc791 (diff) |
[PATCH] ISDN: check for userspace copy faults
Most of the ISDN ->readstat() implementations needed to check
copy_to_user() and put_user() return values.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/isdn/capi/capidrv.c')
-rw-r--r-- | drivers/isdn/capi/capidrv.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c index d10c8b82e6aa..b6f9476c0501 100644 --- a/drivers/isdn/capi/capidrv.c +++ b/drivers/isdn/capi/capidrv.c | |||
@@ -1907,7 +1907,8 @@ static int if_readstat(u8 __user *buf, int len, int id, int channel) | |||
1907 | } | 1907 | } |
1908 | 1908 | ||
1909 | for (p=buf, count=0; count < len; p++, count++) { | 1909 | for (p=buf, count=0; count < len; p++, count++) { |
1910 | put_user(*card->q931_read++, p); | 1910 | if (put_user(*card->q931_read++, p)) |
1911 | return -EFAULT; | ||
1911 | if (card->q931_read > card->q931_end) | 1912 | if (card->q931_read > card->q931_end) |
1912 | card->q931_read = card->q931_buf; | 1913 | card->q931_read = card->q931_buf; |
1913 | } | 1914 | } |