From: Heiko Carstens Date: Mon, 14 Oct 2013 11:58:10 +0000 (+0200) Subject: s390/cmm: make copy_from_user() invocation provably correct X-Git-Tag: next-20131017~94^2~5 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=76a4954a96c8cbd2f84b802b1720efa5c8b85921;p=karo-tx-linux.git s390/cmm: make copy_from_user() invocation provably correct Get rid of these two warnings: In function 'copy_from_user', inlined from 'cmm_timeout_handler' at arch/s390/mm/cmm.c:310: uaccess.h:303: warning: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct In function 'copy_from_user', inlined from 'cmm_pages_handler' at arch/s390/mm/cmm.c:270: uaccess.h:303: warning: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct Change the "len" type to unsigned int, so we can make sure that there is no buffer overflow. This also generates less code. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index 9d84a1feefef..76741306af2a 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c @@ -257,8 +257,8 @@ static int cmm_pages_handler(ctl_table *ctl, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { char buf[16], *p; + unsigned int len; long nr; - int len; if (!*lenp || (*ppos && !write)) { *lenp = 0; @@ -298,7 +298,7 @@ static int cmm_timeout_handler(ctl_table *ctl, int write, void __user *buffer, { char buf[64], *p; long nr, seconds; - int len; + unsigned int len; if (!*lenp || (*ppos && !write)) { *lenp = 0;