Re: linux-4.14-rc1/kernel/sysctl.c:2188: possible cut'n'paste error ?

From: Kees Cook
Date: Mon Sep 18 2017 - 17:04:51 EST


On Mon, Sep 18, 2017 at 1:53 PM, David Binderman <dcb314@xxxxxxxxxxx> wrote:
> Hello there,
>
> linux-4.14-rc1/kernel/sysctl.c:2188] -> [linux-4.14-rc1/kernel/sysctl.c:2190]: (warning) Identical condition '*lvalp>UINT_MAX', second condition is always false
>
> Source code is
>
> if (*lvalp > UINT_MAX)
> return -EINVAL;
> if (*lvalp > UINT_MAX)
> return -EINVAL;
>
> Suggest remove second if test.

commit 4f2fec00afa6 ("sysctl: simplify unsigned int support") removed
"negp", but missed the duplication:

-static int do_proc_douintvec_conv(bool *negp, unsigned long *lvalp,
- int *valp,
- int write, void *data)
+static int do_proc_douintvec_conv(unsigned long *lvalp,
+ unsigned int *valp,
+ int write, void *data)
{
if (write) {
- if (*negp)
+ if (*lvalp > UINT_MAX)
return -EINVAL;
if (*lvalp > UINT_MAX)
return -EINVAL;

David, do you want to send a patch?

-Kees

--
Kees Cook
Pixel Security