aboutsummaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrey Smirnov <[email protected]>2018-12-20 23:28:38 -0800
committerGreg Kroah-Hartman <[email protected]>2019-01-22 10:23:17 +0100
commit5158c36ec9d0b3343f58987cec7ebfd866331fd0 (patch)
treef8196351408508243cc62de53c24ae76ffa886ce /include/linux
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 <[email protected]> Cc: Kyle McMartin <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: David Woodhouse <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: linux-kernel <[email protected]> Signed-off-by: Andrey Smirnov <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'include/linux')
-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;