On 11/11/21 16:59, Marek Behún wrote:
From: Pali Rohár <p...@kernel.org>

There are certain restrictions for kwbimage offset and blocksize.
Validate them.

Signed-off-by: Pali Rohár <p...@kernel.org>
Signed-off-by: Marek Behún <marek.be...@nic.cz>

Some nitpicking comments below...

Other than this:

Reviewed-by: Stefan Roese <s...@denx.de>

---
  arch/arm/mach-mvebu/spl.c | 10 ++++++++++
  1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index 73c4b9af3e..71994e44f1 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -163,6 +163,16 @@ int spl_parse_board_header(struct spl_image_info 
*spl_image,
                spl_image->offset *= 512;
  #endif
+ if (spl_image->offset % 4 != 0) {
+               printf("ERROR: Wrong srcaddr in kwbimage\n");
+               return -EINVAL;
+       }
+
+       if (mhdr->blocksize <= 4 || mhdr->blocksize % 4 != 0) {
+               printf("ERROR: Wrong blocksize in kwbimage\n");
+               return -EINVAL;
+       }

It might make sense to print the incorrect srcaddr and / or blocksize
in the error case, as this might help the user with solving the problem.

Thanks,
Stefan

+
        spl_image->size = mhdr->blocksize;
        spl_image->entry_point = mhdr->execaddr;
        spl_image->load_addr = mhdr->destaddr;


Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to