summaryrefslogtreecommitdiff
path: root/util/cbfstool/lzma/lzma.c
diff options
context:
space:
mode:
authorStefan Reinauer <reinauer@chromium.org>2013-04-08 11:20:55 -0700
committerRonald G. Minnich <rminnich@gmail.com>2013-04-08 21:36:37 +0200
commit33e83caff59f7b6ff2ba62d3b496235ef5c4e543 (patch)
treeaef940e1b7f2c0a626955a309eae7cdc48bbf799 /util/cbfstool/lzma/lzma.c
parentbb2cc714809150e1f1d6a502e29ef524232ee7a9 (diff)
downloadcoreboot-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/lzma.c')
-rw-r--r--util/cbfstool/lzma/lzma.c4
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);