Thread (38 messages) 38 messages, 4 authors, 2018-10-11

Re: [PATCH 15/16] of: unittest: initialize args before calling of_irq_parse_one()

From: Frank Rowand <hidden>
Date: 2018-10-05 19:05:22
Also in: linux-devicetree, linux-fpga, lkml

On 10/05/18 06:26, Guenter Roeck wrote:
On 10/04/2018 09:12 PM, frowand.list@gmail.com wrote:
quoted
From: Frank Rowand <redacted>

Callers of of_irq_parse_one() blindly use the pointer args.np
without checking whether of_irq_parse_one() had an error and
thus did not set the value of args.np.  Initialize args to
zero so that using the format "%pOF" to show the value of
args.np will show "(null)" when of_irq_parse_one() has an
error and does not set args.np instead of trying to
dereference a random value.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Frank Rowand <redacted>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>

The same problem exists when of_parse_phandle_with_args() reports an error.
Thanks, I'll add a fix for that.

-Frank
Guenter
quoted
---
  drivers/of/unittest.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 6d80f474c8f2..b61a33f30a56 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -780,7 +780,7 @@ static void __init of_unittest_parse_interrupts(void)
      for (i = 0; i < 4; i++) {
          bool passed = true;
  -        args.args_count = 0;
+        memset(&args, 0, sizeof(args));
          rc = of_irq_parse_one(np, i, &args);
            passed &= !rc;
@@ -801,7 +801,7 @@ static void __init of_unittest_parse_interrupts(void)
      for (i = 0; i < 4; i++) {
          bool passed = true;
  -        args.args_count = 0;
+        memset(&args, 0, sizeof(args));
          rc = of_irq_parse_one(np, i, &args);
            /* Test the values from tests-phandle.dtsi */
@@ -854,6 +854,7 @@ static void __init of_unittest_parse_interrupts_extended(void)
      for (i = 0; i < 7; i++) {
          bool passed = true;
  +        memset(&args, 0, sizeof(args));
          rc = of_irq_parse_one(np, i, &args);
            /* Test the values from tests-phandle.dtsi */
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help