Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp375799imu; Thu, 8 Nov 2018 22:10:20 -0800 (PST) X-Google-Smtp-Source: AJdET5esVnUUa52Xf40agE0JLbOQel8ilm6MihWDcU0ahCgBaYrFFOH+KUeH3ipONE7Exq2OiMan X-Received: by 2002:a62:35c2:: with SMTP id c185-v6mr7602453pfa.69.1541743820714; Thu, 08 Nov 2018 22:10:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541743820; cv=none; d=google.com; s=arc-20160816; b=NEJg8e/zV1lBUCnGTupiFY9gAUcygbYESEM16hdzlY7uzjLEVEVJ38gesLNRqAZMrE VA7FioYQNgw7m4ir8KLYxQXmntWhY/Enolw0U/5F/sDW4COprVWsA9B6jEHuNM6YzDeU P1aW2/mroqsxiSye4JB4bk5wH+ZlYWPx8uXkWb6bxj4crySUY/Nvzb6yXd5g2m+zUOd7 PpYmmz+0aA6zu+AuBd1HmjLBkOMJdqSFY6XZz2WCByCorFlm6KQ5cqn7HGeFhOlXkyAT w7PQcP3fGhnYkXh8StoMqQdwm3maFK8MUMwZeyebOPDrlun0MHbjRidPAOkJjJG+ZKin nDMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=cW/aLXOwyBpDyXo/7JT8z7O8HOv4Q66hATfzdpFXsv0=; b=R4cEIxpQ5mxdA8UvYX3VKvORXd9j7+A0ndO+o5Chzn6DW8i48BnXIxGyO123CiI4AM Nz7gSkvz3oKzJ8MApL/czMKmeX1r2qUUn5q1cgevfSdPe5I/aEXOcOOMbCsHUbgFzCmE 9jc3bcMxdHV4Ppr0ag1xBm3I7Vfp6flSrF6BgK0Sd2CtmjTUsv1bhpr8C/7cdUcR5Y6I 74MCUMYk/X08mTVKQ6kJzJjxFwZkDj7HZ2ydWo6tNbVy/CqX068mdzQHM/LRBCodWzXQ 49DT1zsONF8e9hfQ6cPRCJ2kL6p6zXRufHEknRpvqbri9BKfnWz2wf5xkG2UvzHLHKj6 VIFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fZnaVXs1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h32-v6si6667582pld.437.2018.11.08.22.10.05; Thu, 08 Nov 2018 22:10:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fZnaVXs1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728244AbeKIPrH (ORCPT + 99 others); Fri, 9 Nov 2018 10:47:07 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:34845 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728158AbeKIPrG (ORCPT ); Fri, 9 Nov 2018 10:47:06 -0500 Received: by mail-pg1-f194.google.com with SMTP id 32-v6so413711pgu.2; Thu, 08 Nov 2018 22:08:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cW/aLXOwyBpDyXo/7JT8z7O8HOv4Q66hATfzdpFXsv0=; b=fZnaVXs1M4q+X6hcAxC9eP/N3Vys4TbvAyesOwCjyr/dLa0HiUhNLLye7JMsbQ2IKG S4dfIQq4u+JX3YLN2yndMWw8rmGx1qVuP8Cl/ySwiwGCFuQvCKFFNKMPfZjNXj+dzYQT 9q2HrUTIsWHpYv1V50PmWdmuffjaueJX8fHm88tt5Mv4XU4uRbSTJJ824eX3/cs2jiEL UwaOAoFlGO/Kp94hWkJtFm39ofjng+C6GbqOWo0D86q2Y4UV8YK4oRjmQw2/Vsl9xTw8 Z6Ie36gdIRP3Uo2s5CrkU6zaUmrR/Fks2+vNgtweoG4jBALmEuBDt0Dhum1hQVr2OVfY LF+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cW/aLXOwyBpDyXo/7JT8z7O8HOv4Q66hATfzdpFXsv0=; b=O/sNaRVLwcJpfHkS2NTVAG4HHR+091CVfjp50bO6VtUm2K1zVTfQq9FfescXjEntAB 52w0MN4eaRDECCj1aO3Ev36J45824iG1NlXpCZosvtpkeANcZIF53nmC4B84GdwQxm04 FFl3EMlon3nctnc/GkQsVJZ2nKNYlTJpFAqHOWUq+HMSF9t8v3nzQpl65BE9OYmcvE91 h6/m2Oc3PpqG5D6Tiq2ZzqszIRMeV0Av+PYl/iT6xqmPeYiz5RQHMlEHIOdKnUGTDRBb NThql30kfz7xwby4idrVGbRYgu0wV9zX3j29IHsWBBxb/8TVglC3QJTXNRmvySKeL7qf g6GQ== X-Gm-Message-State: AGRZ1gJFATDwqGMaKIfvBGBB3cJanD1LTpgqUFm8naVgtBj/Ui35rm5h VhDlDALBij4cyIpiGsuEpaE= X-Received: by 2002:a63:7c13:: with SMTP id x19mr6325823pgc.45.1541743684828; Thu, 08 Nov 2018 22:08:04 -0800 (PST) Received: from localhost.localdomain (c-24-6-192-50.hsd1.ca.comcast.net. [24.6.192.50]) by smtp.gmail.com with ESMTPSA id c70-v6sm6620722pfg.97.2018.11.08.22.08.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 08 Nov 2018 22:08:04 -0800 (PST) From: frowand.list@gmail.com To: Rob Herring , Pantelis Antoniou , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Alan Tull , Moritz Fischer , Guenter Roeck Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, devicetree@vger.kernel.org, linux-fpga@vger.kernel.org Subject: [PATCH v7 17/17] of: unittest: initialize args before calling of_*parse_*() Date: Thu, 8 Nov 2018 22:06:05 -0800 Message-Id: <1541743565-23163-18-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1541743565-23163-1-git-send-email-frowand.list@gmail.com> References: <1541743565-23163-1-git-send-email-frowand.list@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Rowand 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. This prevents the dereference of a random value. Make the same fix for callers of of_parse_phandle_with_args() and of_parse_phandle_with_args_map(). Reported-by: Guenter Roeck Tested-by: Alan Tull Signed-off-by: Frank Rowand --- drivers/of/unittest.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index fe01c5869b0f..9a10a48eb6a1 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -379,6 +379,7 @@ static void __init of_unittest_parse_phandle_with_args(void) for (i = 0; i < 8; i++) { bool passed = true; + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args(np, "phandle-list", "#phandle-cells", i, &args); @@ -432,6 +433,7 @@ static void __init of_unittest_parse_phandle_with_args(void) } /* Check for missing list property */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args(np, "phandle-list-missing", "#phandle-cells", 0, &args); unittest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); @@ -440,6 +442,7 @@ static void __init of_unittest_parse_phandle_with_args(void) unittest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); /* Check for missing cells property */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args(np, "phandle-list", "#phandle-cells-missing", 0, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); @@ -448,6 +451,7 @@ static void __init of_unittest_parse_phandle_with_args(void) unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for bad phandle in list */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args(np, "phandle-list-bad-phandle", "#phandle-cells", 0, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); @@ -456,6 +460,7 @@ static void __init of_unittest_parse_phandle_with_args(void) unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for incorrectly formed argument list */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args(np, "phandle-list-bad-args", "#phandle-cells", 1, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); @@ -506,6 +511,7 @@ static void __init of_unittest_parse_phandle_with_args_map(void) for (i = 0; i < 8; i++) { bool passed = true; + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args_map(np, "phandle-list", "phandle", i, &args); @@ -563,21 +569,25 @@ static void __init of_unittest_parse_phandle_with_args_map(void) } /* Check for missing list property */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args_map(np, "phandle-list-missing", "phandle", 0, &args); unittest(rc == -ENOENT, "expected:%i got:%i\n", -ENOENT, rc); /* Check for missing cells,map,mask property */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args_map(np, "phandle-list", "phandle-missing", 0, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for bad phandle in list */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args_map(np, "phandle-list-bad-phandle", "phandle", 0, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); /* Check for incorrectly formed argument list */ + memset(&args, 0, sizeof(args)); rc = of_parse_phandle_with_args_map(np, "phandle-list-bad-args", "phandle", 1, &args); unittest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); @@ -787,7 +797,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; @@ -808,7 +818,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 */ @@ -864,6 +874,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 */ -- Frank Rowand