lzma: Return correct amount of decompressed bytes

The LZMA functions are supposed to return the decompressed size, but
what they actually return is just an unaltered field from the LZMA
header that is *supposed* to contain the decompressed size. Apparently
some encoders just overshoot that for no good reason. This patch changes
the code such that the actual amount of decompressed bytes is returned.

BRANCH=smaug
BUG=None
TEST=Printed output bytes when decompressing kernels with LZMA in
depthcharge, noted that amounts now make sense.

Change-Id: Icdd8f782aa87841f770eff4c14a08973530c7446
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 24b2fa8c9a342ca4288dad1430c8965395f00263
Original-Change-Id: Ib4cf8673846aedd34656e594ce7b8ea875b56099
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/282742
Original-Reviewed-by: Stefan Reinauer <reinauer@google.com>
Original-Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: http://review.coreboot.org/10777
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Julius Werner 2015-06-25 23:22:36 -07:00 committed by Patrick Georgi
parent e6883a3d9b
commit d8086876a7
2 changed files with 2 additions and 2 deletions

View File

@ -48,7 +48,7 @@ unsigned long ulzman(const unsigned char *src, unsigned long srcn,
printf("lzma: Decoding error = %d\n", res);
return 0;
}
return outSize;
return outProcessed;
}
unsigned long ulzma(const unsigned char *src, unsigned char *dst)

View File

@ -54,5 +54,5 @@ unsigned long ulzma(unsigned char * src, unsigned char * dst)
return 0;
}
timestamp_add_now(TS_END_ULZMA);
return outSize;
return outProcessed;
}