Changeset: 3285a008f907 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3285a008f907
Modified Files:
        common/stream/stream.c
Branch: Mar2018
Log Message:

Fix lzma rewind in open_xzstream

When no UTF-8 BOM is found, we have to reset the decoder state
when rewinding the stream.


diffs (23 lines):

diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -1629,7 +1629,18 @@ open_xzstream(const char *restrict filen
                    strncmp(buf, UTF8BOM, UTF8BOMLENGTH) == 0) {
                        s->isutf8 = 1;
                } else {
-                       rewind(xz->fp);
+                       FILE *fp = xz->fp;
+                       lzma_ret ret;
+                       lzma_end(&xz->strm);
+                       ret = lzma_stream_decoder(&xz->strm, UINT64_MAX, 
LZMA_CONCATENATED);
+                       if (ret != LZMA_OK) {
+                               destroy(s);
+                               free(xz);
+                               fclose(fp);
+                               return NULL;
+                       }
+                       rewind(fp);
+                       xz->fp = fp;
                }
        }
        return s;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to