[U-Boot] [PATCH v1] fs: ubifs: Fix UBIFS decompression on 64 bit

Heiko Schocher hs at denx.de
Thu Nov 8 09:54:34 UTC 2018


Hello Paul,

Am 05.11.2018 um 06:09 schrieb Paul Davey:
> Add local size_t variable to crypto_comp_decompress as intermediate
> storage for destination length to avoid memory corruption and incorrect
> results on 64 bit targets.
> 
> This is what linux does for the various lz compression implementations.
> 
> Signed-off-by: Paul Davey <paul.davey at alliedtelesis.co.nz>
> Cc: Heiko Schocher <hs at denx.de>
> ---
> 
> When attempting to use ubifs on a MIPS64 platform I found that it would fail
> decompression for the file I was attempting to load.
> 
> Further investigation found that this was due to the pointer cast from unsigned
> int * to size_t * in the decompression wrapper.  This will cause any big endian
> 64 bit platform to fail to load any ubifs file that requires decompression and
> at least cause little endian 64 bit platforms to silently write 0 over 4 bytes
> of stack memory.
> 
>   fs/ubifs/ubifs.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)

Applied to u-boot-ubi.git master

Thanks!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list