diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2011-07-28 16:59:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-02 19:09:46 -0400 |
commit | 09f9390d797ff34020faab866996884fd93a0081 (patch) | |
tree | 779bdc0689d275622d3213560c613267ee3c1d66 /drivers/staging | |
parent | 8f89615528b11eabda68faaf2438d09c9565a125 (diff) |
drivers/staging/speakup/devsynth.c: fix "buffer size is not provably correct" error
x86_64 allmodconfig:
In file included from arch/x86/include/asm/uaccess.h:572,
from include/linux/uaccess.h:5,
from drivers/staging/speakup/devsynth.c:4:
In function 'copy_from_user',
inlined from 'speakup_file_write' at drivers/staging/speakup/devsynth.c:28:
arch/x86/include/asm/uaccess_64.h:64: error: call to 'copy_from_user_overflow' declared with attribute error: copy_from_user() buffer size is not provably correct
I'm not sure what was unprovable about it, but size_t is the correct type
anyway.
Also replace needless min_t() with min()
Cc: William Hubbs <w.d.hubbs@gmail.com>
Cc: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/speakup/devsynth.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c index 39dc586fc8bb..940769ef883f 100644 --- a/drivers/staging/speakup/devsynth.c +++ b/drivers/staging/speakup/devsynth.c | |||
@@ -18,13 +18,14 @@ static ssize_t speakup_file_write(struct file *fp, const char *buffer, | |||
18 | { | 18 | { |
19 | size_t count = nbytes; | 19 | size_t count = nbytes; |
20 | const char *ptr = buffer; | 20 | const char *ptr = buffer; |
21 | int bytes; | 21 | size_t bytes; |
22 | unsigned long flags; | 22 | unsigned long flags; |
23 | u_char buf[256]; | 23 | u_char buf[256]; |
24 | |||
24 | if (synth == NULL) | 25 | if (synth == NULL) |
25 | return -ENODEV; | 26 | return -ENODEV; |
26 | while (count > 0) { | 27 | while (count > 0) { |
27 | bytes = min_t(size_t, count, sizeof(buf)); | 28 | bytes = min(count, sizeof(buf)); |
28 | if (copy_from_user(buf, ptr, bytes)) | 29 | if (copy_from_user(buf, ptr, bytes)) |
29 | return -EFAULT; | 30 | return -EFAULT; |
30 | count -= bytes; | 31 | count -= bytes; |