summaryrefslogtreecommitdiff
path: root/lib_generic/lzma/LzmaTools.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2009-12-05 02:11:59 +0100
committerWolfgang Denk <wd@denx.de>2009-12-05 02:11:59 +0100
commit2a49bf3149e34e6f910e70bbc0a26e81cfdbdf70 (patch)
treee19b3def6c8f41f56cdb5e8b71aa53d8f72f5812 /lib_generic/lzma/LzmaTools.c
parentcd514aeb996e2f7aefbe1f78481965d9d074aed4 (diff)
parentf68ab43de67f59925542efb6bcec30f4a84fe695 (diff)
Merge branch 'master' into next
Conflicts: board/esd/plu405/plu405.c drivers/rtc/ftrtc010.c Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'lib_generic/lzma/LzmaTools.c')
-rw-r--r--lib_generic/lzma/LzmaTools.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib_generic/lzma/LzmaTools.c b/lib_generic/lzma/LzmaTools.c
index 408b577f1..8860bfbf3 100644
--- a/lib_generic/lzma/LzmaTools.c
+++ b/lib_generic/lzma/LzmaTools.c
@@ -97,11 +97,14 @@ int lzmaBuffToBuffDecompress (unsigned char *outStream, SizeT *uncompressedSize,
} else if (outSizeHigh != 0 || (UInt32)(SizeT)outSize != outSize) {
/*
* SizeT is a 32 bit uint => We cannot manage files larger than
- * 4GB!
+ * 4GB! Assume however that all 0xf values is "unknown size" and
+ * not actually a file of 2^64 bits.
*
*/
- debug ("LZMA: 64bit support not enabled.\n");
- return SZ_ERROR_DATA;
+ if (outSizeHigh != (SizeT)-1 || outSize != (SizeT)-1) {
+ debug ("LZMA: 64bit support not enabled.\n");
+ return SZ_ERROR_DATA;
+ }
}
debug ("LZMA: Uncompresed size............ 0x%lx\n", outSizeFull);