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 <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Heiko Carstens 2013-10-14 13:58:10 +02:00 коммит произвёл Martin Schwidefsky
Родитель 160d378ebc
Коммит 041058a16a
1 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -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;