All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Staging: comedi: clean up conditional statement in addi_apci_3xxx.c
@ 2014-02-13  3:29 Chase Southwood
  2014-02-13 10:08 ` Ian Abbott
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Chase Southwood @ 2014-02-13  3:29 UTC (permalink / raw)
  To: gregkh; +Cc: abbotti, hsweeten, devel, linux-kernel, Chase Southwood

In this if-else conditional statement, if (chan < 16), but
(data[0] == INSN_CONFIG_DIO_QUERY), the function does not return early,
but the else-branch does not get executed either.  As a result, mask
would be used uninitialized in the next line.  What we want here is if
(chan < 16) and (data[0] != INSN_CONFIG_DIO_QUERY), return an error, but
in every other case, initialize mask and then proceed.  Found by a static
checker.

Signed-off-by: Chase Southwood <chase.southwood@yahoo.com>
---
 drivers/staging/comedi/drivers/addi_apci_3xxx.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/comedi/drivers/addi_apci_3xxx.c b/drivers/staging/comedi/drivers/addi_apci_3xxx.c
index ceadf8e..04c5153 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3xxx.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3xxx.c
@@ -688,13 +688,11 @@ static int apci3xxx_dio_insn_config(struct comedi_device *dev,
 	 * Port 1 (channels 8-15) are always outputs
 	 * Port 2 (channels 16-23) are programmable i/o
 	 */
-	if (chan < 16) {
-		if (data[0] != INSN_CONFIG_DIO_QUERY)
-			return -EINVAL;
-	} else {
-		/* changing any channel in port 2 changes the entire port */
-		mask = 0xff0000;
-	}
+	if ((chan < 16) && (data[0] != INSN_CONFIG_DIO_QUERY))
+		return -EINVAL;
+
+	/* changing any channel in port 2 changes the entire port */
+	mask = 0xff0000;
 
 	ret = comedi_dio_insn_config(dev, s, insn, data, mask);
 	if (ret)
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-02-14 17:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-13  3:29 [PATCH] Staging: comedi: clean up conditional statement in addi_apci_3xxx.c Chase Southwood
2014-02-13 10:08 ` Ian Abbott
2014-02-14 11:52   ` Ian Abbott
2014-02-13 18:25 ` Hartley Sweeten
2014-02-14 11:49   ` Ian Abbott
2014-02-14 17:54     ` Hartley Sweeten
2014-02-14  1:02 ` [PATCH v2] " Chase Southwood
2014-02-14 11:54   ` Ian Abbott

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.