From: Mathias Kresin Date: Sat, 27 Nov 2021 20:43:40 +0000 (+0100) Subject: uboot-lantiq: danube: fix hanging lzma kernel uncompression #2 X-Git-Tag: v21.02.2~104 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=36848e2c29ef7be477db875491fd96f2efa08645;p=openwrt%2Fstaging%2Fhauke.git uboot-lantiq: danube: fix hanging lzma kernel uncompression #2 Follow up to commit c744798cad6a13436f2ba9dd3a280cb16d315c85. Managed to hit the very same issue again while playing with the NOR SPL builds. Signed-off-by: Mathias Kresin --- diff --git a/package/boot/uboot-lantiq/patches/0030-lzma-force-8bit-reads.patch b/package/boot/uboot-lantiq/patches/0030-lzma-force-8bit-reads.patch index dc7d9ed7ee..a934dab5cd 100644 --- a/package/boot/uboot-lantiq/patches/0030-lzma-force-8bit-reads.patch +++ b/package/boot/uboot-lantiq/patches/0030-lzma-force-8bit-reads.patch @@ -37,6 +37,15 @@ Signed-off-by: Mathias Kresin #define kNumTopBits 24 #define kTopValue ((UInt32)1 << kNumTopBits) +@@ -703,7 +704,7 @@ static ELzmaDummy LzmaDec_TryDummy(const + + static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data) + { +- p->code = ((UInt32)data[1] << 24) | ((UInt32)data[2] << 16) | ((UInt32)data[3] << 8) | ((UInt32)data[4]); ++ p->code = ((UInt32)readb(&data[1]) << 24) | ((UInt32)readb(&data[2]) << 16) | ((UInt32)readb(&data[3]) << 8) | ((UInt32)readb(&data[4])); + p->range = 0xFFFFFFFF; + p->needFlush = 0; + } @@ -929,7 +930,7 @@ SRes LzmaProps_Decode(CLzmaProps *p, con if (size < LZMA_PROPS_SIZE) return SZ_ERROR_UNSUPPORTED;