Fix nocomp decompression
authorJonathan Dieter <jdieter@gmail.com>
Thu, 26 Jul 2018 22:03:11 +0000 (23:03 +0100)
committerJonathan Dieter <jdieter@gmail.com>
Thu, 26 Jul 2018 22:03:11 +0000 (23:03 +0100)
Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
src/lib/comp/comp.c
src/lib/comp/nocomp/nocomp.c

index 858109305f75266e689cc51ca8a8649cd7a02e14..158b56510f8f8cf29b5579f33f8196a768bcf89a 100644 (file)
@@ -451,7 +451,8 @@ ssize_t comp_read(zckCtx *zck, char *dst, size_t dst_size, int use_dict) {
         /* Decompress compressed buffer into decompressed buffer */
         size_t dc_data_size = zck->comp.dc_data_size;
         size_t dc_data_loc = zck->comp.dc_data_loc;
-        if(!zck->comp.decompress(zck, &(zck->comp), use_dict))
+        if(zck->comp.data_size > 0 &&
+           !zck->comp.decompress(zck, &(zck->comp), use_dict))
             goto read_error;
 
         /* Check whether we decompressed more data */
index 233564d773d74be6d58b42553efa5296740853d0..74eb26ebddb5fc2548ee7f397f307f94b2464f61 100644 (file)
@@ -72,7 +72,7 @@ static int decompress(zckCtx *zck, zckComp *comp, const int use_dict) {
     ALLOCD_BOOL(comp);
 
     char *src = comp->data;
-    char src_size = comp->data_size;
+    size_t src_size = comp->data_size;
     comp->data = NULL;
     comp->data_size = 0;
     if(!comp_add_to_dc(zck, comp, src, src_size)) {