cbfstool: completely initialize input and output streams
The LZMA glue code in cbfstool was recently rewritten from C++
to plain C code in:
commit aa3f7ba36e
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>
This commit is contained in:
parent
bb2cc71480
commit
33e83caff5
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue