Staging: lustre: ptlrpc: signedness bug in high_priority_ratio_store()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 5 Jun 2015 09:22:57 +0000 (12:22 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Jun 2015 19:39:01 +0000 (12:39 -0700)
We want to store a non-negative int here.  The original code had a check
for unsigned long less than zero which is a mistake but also casting
from a positive long to an int can result in a negative number.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c

index c04ae50c2c298fa5d73fc8498594818d2d878d75..aaaabbf5f1b9807770d7e743e3c62035fd8809bf 100644 (file)
@@ -1035,9 +1035,9 @@ static ssize_t high_priority_ratio_store(struct kobject *kobj,
        struct ptlrpc_service *svc = container_of(kobj, struct ptlrpc_service,
                                                  srv_kobj);
        int rc;
-       unsigned long val;
+       int val;
 
-       rc = kstrtoul(buffer, 10, &val);
+       rc = kstrtoint(buffer, 10, &val);
        if (rc < 0)
                return rc;