]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_reset): Preserve context
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Sep 2010 11:50:24 +0000 (13:50 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Sep 2010 11:50:24 +0000 (13:50 +0200)
pointer.

ChangeLog
grub-core/lib/xzembed/xz_dec_stream.c

index 330656cc3a6f5ec32b6bcdf3bb0121e7636dd672..f82f1246761bfc34ddef1613aed2628d798fcda5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-11  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/lib/xzembed/xz_dec_stream.c (xz_dec_reset): Preserve context
+       pointer.
+
 2010-09-11  Szymon Janc <szymon@janc.net.pl>
 
        * grub-core/commands/lsacpi.c (grub_cmd_lsacpi): Fix prototype.
index 642492483c7218d9692a7f02ebf571d83f864899..ff26f5119db38c8b1c6dd633553bf278e8316642 100644 (file)
@@ -830,8 +830,15 @@ void xz_dec_reset(struct xz_dec *s)
        s->allow_buf_error = false;
        s->pos = 0;
 
-       memzero(&s->block, sizeof(s->block));
-       memzero(&s->index, sizeof(s->index));
+       {
+               uint8_t *t;
+               t = s->block.hash.crc32_context;
+               memzero(&s->block, sizeof(s->block));
+               s->block.hash.crc32_context = t;
+               t = s->index.hash.crc32_context;
+               memzero(&s->index, sizeof(s->index));
+               s->index.hash.crc32_context = t;
+       }
        s->temp.pos = 0;
        s->temp.size = STREAM_HEADER_SIZE;