diff options
author | Stefan Reinauer <reinauer@chromium.org> | 2013-04-08 11:20:55 -0700 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-04-08 21:36:37 +0200 |
commit | 33e83caff59f7b6ff2ba62d3b496235ef5c4e543 (patch) | |
tree | aef940e1b7f2c0a626955a309eae7cdc48bbf799 /util/cbfstool/lzma | |
parent | bb2cc714809150e1f1d6a502e29ef524232ee7a9 (diff) | |
download | coreboot-33e83caff59f7b6ff2ba62d3b496235ef5c4e543.tar.xz |
cbfstool: completely initialize input and output streams
The LZMA glue code in cbfstool was recently rewritten from C++
to plain C code in:
commit aa3f7ba36ebe3a933aa664f826382f60b31e86f1
Author: Stefan Reinauer <reinauer@chromium.org>
Date: Thu Mar 28 16:51:45 2013 -0700
cbfstool: Replace C++ code with C code
Reviewed-on: http://review.coreboot.org/3010
In the progress of doing so, the stream position for the
input stream and output stream was not reset properly. This
would cause LZMA producing corrupt data when running the
compression function multiple times.
Change-Id: I096e08f263aaa1931517885be4610bbd1de8331e
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/3040
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'util/cbfstool/lzma')
-rw-r--r-- | util/cbfstool/lzma/lzma.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/util/cbfstool/lzma/lzma.c b/util/cbfstool/lzma/lzma.c index 914d8b7da9..579784eae0 100644 --- a/util/cbfstool/lzma/lzma.c +++ b/util/cbfstool/lzma/lzma.c @@ -61,7 +61,7 @@ static ISzAlloc LZMAalloc = { SzAlloc, SzFree }; /* Streaming API */ -typedef struct vector { +typedef struct { char *p; size_t pos; size_t size; @@ -147,9 +147,11 @@ void do_lzma_compress(char *in, int in_len, char *out, int *out_len) } instream.p = in; + instream.pos = 0; instream.size = in_len; outstream.p = out; + outstream.pos = 0; outstream.size = in_len; put_64(propsEncoded + LZMA_PROPS_SIZE, in_len); |