Linux-Watchdog Archive on lore.kernel.org
 help / color / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: linux-watchdog@vger.kernel.org
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>,
	Chris Healy <cphealy@gmail.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Rick Ramstetter <rick@anteaterllc.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 13/22] watchdog: ziirave_wdt: Don't read out more than 'len' firmware bytes
Date: Mon, 12 Aug 2019 13:08:57 -0700
Message-ID: <20190812200906.31344-14-andrew.smirnov@gmail.com> (raw)
In-Reply-To: <20190812200906.31344-1-andrew.smirnov@gmail.com>

We only compare first 'len' bytes of read firmware, so we don't need
to read more that that.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: Chris Healy <cphealy@gmail.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Rick Ramstetter <rick@anteaterllc.com>
Cc: linux-watchdog@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/watchdog/ziirave_wdt.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/watchdog/ziirave_wdt.c b/drivers/watchdog/ziirave_wdt.c
index 4b95467bf239..f05095b08016 100644
--- a/drivers/watchdog/ziirave_wdt.c
+++ b/drivers/watchdog/ziirave_wdt.c
@@ -318,6 +318,8 @@ static int ziirave_firm_verify(struct watchdog_device *wdd,
 	u16 addr;
 
 	for (rec = (void *)fw->data; rec; rec = ihex_next_binrec(rec)) {
+		const u16 len = be16_to_cpu(rec->len);
+
 		addr = (be32_to_cpu(rec->addr) & 0xffff) >> 1;
 		if (addr < ZIIRAVE_FIRM_FLASH_MEMORY_START ||
 		    addr > ZIIRAVE_FIRM_FLASH_MEMORY_END)
@@ -331,7 +333,7 @@ static int ziirave_firm_verify(struct watchdog_device *wdd,
 			return ret;
 		}
 
-		for (i = 0; i < ARRAY_SIZE(data); i++) {
+		for (i = 0; i < len; i++) {
 			ret = i2c_smbus_read_byte_data(client,
 						ZIIRAVE_CMD_DOWNLOAD_READ_BYTE);
 			if (ret < 0) {
@@ -342,7 +344,7 @@ static int ziirave_firm_verify(struct watchdog_device *wdd,
 			data[i] = ret;
 		}
 
-		if (memcmp(data, rec->data, be16_to_cpu(rec->len))) {
+		if (memcmp(data, rec->data, len)) {
 			dev_err(&client->dev,
 				"Firmware mismatch at address 0x%04x\n", addr);
 			return -EINVAL;
-- 
2.21.0


  parent reply index

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-12 20:08 [PATCH v2 00/22] Ziirave_wdt driver fixes Andrey Smirnov
2019-08-12 20:08 ` [PATCH v2 01/22] watchdog: ziirave_wdt: Add missing newline Andrey Smirnov
2019-08-12 20:08 ` [PATCH v2 02/22] watchdog: ziirave_wdt: Be verbose about errors in probe() Andrey Smirnov
2019-08-12 20:08 ` [PATCH v2 03/22] watchdog: ziirave_wdt: Be more verbose during firmware update Andrey Smirnov
2019-08-12 20:08 ` [PATCH v2 04/22] watchdog: ziirave_wdt: Don't bail out on unexpected timeout value Andrey Smirnov
2019-08-15 18:12   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 05/22] watchdog: ziirave_wdt: Log bootloader/firmware info during probe Andrey Smirnov
2019-08-12 20:08 ` [PATCH v2 06/22] watchdog: ziirave_wdt: Simplify ziirave_firm_write_pkt() Andrey Smirnov
2019-08-15 18:14   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 07/22] watchdog: ziirave_wdt: Check packet length only once Andrey Smirnov
2019-08-15 18:14   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 08/22] watchdog: ziirave_wdt: Skip zeros when calculating checksum Andrey Smirnov
2019-08-15 18:16   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 09/22] watchdog: ziirave_wdt: Fix incorrect use of ARRAY_SIZE Andrey Smirnov
2019-08-15 18:17   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 10/22] watchdog: ziirave_wdt: Zero out only what's necessary Andrey Smirnov
2019-08-15 18:17   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 11/22] watchdog: ziirave_wdt: Make use of put_unaligned_le16 Andrey Smirnov
2019-08-15 18:18   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 12/22] watchdog: ziirave_wdt: Don't check if ihex record length is zero Andrey Smirnov
2019-08-15 18:19   ` Guenter Roeck
2019-08-12 20:08 ` Andrey Smirnov [this message]
2019-08-15 18:19   ` [PATCH v2 13/22] watchdog: ziirave_wdt: Don't read out more than 'len' firmware bytes Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 14/22] watchdog: ziirave_wdt: Don't try to program readonly flash Andrey Smirnov
2019-08-15 18:21   ` Guenter Roeck
2019-08-12 20:08 ` [PATCH v2 15/22] watchdog: ziirave_wdt: Fix misleading error message Andrey Smirnov
2019-08-15 18:22   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 16/22] watchdog: ziirave_wdt: Fix JUMP_TO_BOOTLOADER payload Andrey Smirnov
2019-08-15 18:22   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 17/22] watchdog: ziirave_wdt: Fix DOWNLOAD_END payload Andrey Smirnov
2019-08-15 18:23   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 18/22] watchdog: ziirave_wdt: Fix RESET_PROCESSOR payload Andrey Smirnov
2019-08-15 18:23   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 19/22] watchdog: ziirave_wdt: Drop status polling code Andrey Smirnov
2019-08-15 18:24   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 20/22] watchdog: ziirave_wdt: Fix DOWNLOAD_START payload Andrey Smirnov
2019-08-15 18:24   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 21/22] watchdog: ziirave_wdt: Drop ziirave_firm_write_block_data() Andrey Smirnov
2019-08-15 18:25   ` Guenter Roeck
2019-08-12 20:09 ` [PATCH v2 22/22] watchdog: ziirave_wdt: Update checked I2C functionality mask Andrey Smirnov
2019-08-15 18:25   ` Guenter Roeck

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190812200906.31344-14-andrew.smirnov@gmail.com \
    --to=andrew.smirnov@gmail.com \
    --cc=cphealy@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=rick@anteaterllc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-Watchdog Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-watchdog/0 linux-watchdog/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-watchdog linux-watchdog/ https://lore.kernel.org/linux-watchdog \
		linux-watchdog@vger.kernel.org
	public-inbox-index linux-watchdog

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-watchdog


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git