summaryrefslogtreecommitdiff
path: root/include/linux/ihex.h
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2018-12-20 23:28:38 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-01-22 10:23:17 +0100
commit5158c36ec9d0b3343f58987cec7ebfd866331fd0 (patch)
treef8196351408508243cc62de53c24ae76ffa886ce /include/linux/ihex.h
parent8092e79204e7884f4bee3584ecfe6cf4a124d129 (diff)
ihex: Check if zero-length record is at the end of the blob
When verifying the validity of IHEX file we need to make sure that zero-length record we found is located at the end of the file. Not doing that could result in an invalid file with a bogus zero-length in the middle short-circuiting the check and being reported as valid. Cc: Chris Healy <cphealy@gmail.com> Cc: Kyle McMartin <kyle@kernel.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-kernel <linux-kernel@vger.kernel.org> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/ihex.h')
-rw-r--r--include/linux/ihex.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/ihex.h b/include/linux/ihex.h
index 9c701521176b..9130f307a420 100644
--- a/include/linux/ihex.h
+++ b/include/linux/ihex.h
@@ -49,7 +49,7 @@ static inline int ihex_validate_fw(const struct firmware *fw)
for (; rec <= end; rec = __ihex_next_binrec(rec)) {
/* Zero length marks end of records */
- if (!be16_to_cpu(rec->len))
+ if (rec == end && !be16_to_cpu(rec->len))
return 0;
}
return -EINVAL;