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:
Stefan Reinauer 2013-04-08 11:20:55 -07:00 committed by Ronald G. Minnich
parent bb2cc71480
commit 33e83caff5
1 changed files with 3 additions and 1 deletions

View File

@ -61,7 +61,7 @@ static ISzAlloc LZMAalloc = { SzAlloc, SzFree };
/* Streaming API */ /* Streaming API */
typedef struct vector { typedef struct {
char *p; char *p;
size_t pos; size_t pos;
size_t size; 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.p = in;
instream.pos = 0;
instream.size = in_len; instream.size = in_len;
outstream.p = out; outstream.p = out;
outstream.pos = 0;
outstream.size = in_len; outstream.size = in_len;
put_64(propsEncoded + LZMA_PROPS_SIZE, in_len); put_64(propsEncoded + LZMA_PROPS_SIZE, in_len);