lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 2 Aug 2021 20:50:22 -0500
From:   Pete Zaitcev <zaitcev@...hat.com>
To:     Salah Triki <salah.triki@...il.com>
Cc:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
        zaitcev@...hat.com
Subject: Re: [PATCH] usb: class: usblp: replace conditional statement with
 min()

On Tue, 3 Aug 2021 01:28:06 +0100
Salah Triki <salah.triki@...il.com> wrote:

> Replace conditional statement with min() in order to make code cleaner. Issue
> found by coccinelle.

> +++ b/drivers/usb/class/usblp.c
>  		request, !!dir, recip, value, index, len, retval);
> -	return retval < 0 ? retval : 0;
> +	return min(retval, 0);
>  }

I'm very much against this change. The function min() is there
for numeric values. But here we have a situation where we
do one thing if there was an error, and another thing if
there was no error.

This sort of abuse is exactly why blindly clicking heels
whenever a tool tells you is not optimal.

If the objective is to shut the tool up, please consider
the following instead:

diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index 9596e4279294..bbcbcf199fa9 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -264,7 +264,9 @@ static int usblp_ctrl_msg(struct usblp *usblp, int request, int type, int dir, i
        dev_dbg(&usblp->intf->dev,
                "usblp_control_msg: rq: 0x%02x dir: %d recip: %d value: %d idx: %d len: %#x result: %d\n",
                request, !!dir, recip, value, index, len, retval);
-       return retval < 0 ? retval : 0;
+       if (retval < 0)
+               return retval;
+       return 0;
 }
 
 #define usblp_read_status(usblp, status)\


-- Pete

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ