]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
ensure dependency for zlib wrapper
authorYann Collet <cyan@fb.com>
Wed, 15 Aug 2018 23:43:13 +0000 (16:43 -0700)
committerYann Collet <cyan@fb.com>
Wed, 15 Aug 2018 23:43:13 +0000 (16:43 -0700)
Makefile
zlibWrapper/examples/zwrapbench.c
zlibWrapper/gzlib.c
zlibWrapper/gzwrite.c

index f8441e60d8919228944d132f90698923ac012701..d3375760329775eb1867e3a5a85ec826255f510b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -30,8 +30,7 @@ default: lib-release zstd-release
 all: allmost examples manual contrib
 
 .PHONY: allmost
-allmost: allzstd
-       $(MAKE) -C $(ZWRAPDIR) all
+allmost: allzstd zlibwrapper
 
 #skip zwrapper, can't build that on alternate architectures without the proper zlib installed
 .PHONY: allzstd
@@ -44,8 +43,9 @@ all32:
        $(MAKE) -C $(PRGDIR) zstd32
        $(MAKE) -C $(TESTDIR) all32
 
-.PHONY: lib lib-release
-lib lib-release:
+.PHONY: lib lib-release libzstd.a
+lib : libzstd.a
+lib lib-release libzstd.a:
        @$(MAKE) -C $(ZSTDDIR) $@
 
 .PHONY: zstd zstd-release
@@ -59,8 +59,8 @@ zstdmt:
        cp $(PRGDIR)/zstd$(EXT) ./zstdmt$(EXT)
 
 .PHONY: zlibwrapper
-zlibwrapper:
-       $(MAKE) -C $(ZWRAPDIR) test
+zlibwrapper: libzstd.a
+       $(MAKE) -C $(ZWRAPDIR) all
 
 .PHONY: test
 test: MOREFLAGS += -g -DDEBUGLEVEL=1 -Werror
@@ -353,5 +353,5 @@ bmi32build: clean
 
 staticAnalyze:
        $(CC) -v
-       CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
+       CC=$(CC) CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
 endif
index a4dfbb6e8c47e5ff955f1dfdec337cc51bdb465e..d2d6073f9c0e75cfe279b0ef807ef7c7afc482a1 100644 (file)
@@ -573,10 +573,10 @@ static size_t BMK_findMaxMem(U64 requiredMem)
     do {
         testmem = (BYTE*)malloc((size_t)requiredMem);
         requiredMem -= step;
-    } while (!testmem);
+    } while (!testmem && requiredMem);   /* do not allocate zero bytes */
 
     free(testmem);
-    return (size_t)(requiredMem);
+    return (size_t)(requiredMem+1);  /* avoid zero */
 }
 
 static void BMK_benchCLevel(void* srcBuffer, size_t benchedSize,
@@ -734,7 +734,7 @@ static void BMK_benchFileTable(const char** fileNamesTable, unsigned nbFiles,
     if ((U64)benchedSize > totalSizeToLoad) benchedSize = (size_t)totalSizeToLoad;
     if (benchedSize < totalSizeToLoad)
         DISPLAY("Not enough memory; testing %u MB only...\n", (U32)(benchedSize >> 20));
-    srcBuffer = malloc(benchedSize);
+    srcBuffer = malloc(benchedSize + !benchedSize);
     if (!srcBuffer) EXM_THROW(12, "not enough memory");
 
     /* Load input buffer */
index 8235cff4fda14e4799333122d9655370a89e5b10..3070dd8b4975c25b8a7f506d48b7cae0ffeaecf6 100644 (file)
@@ -111,7 +111,7 @@ local gzFile gz_open(path, fd, mode)
         return NULL;
 
     /* allocate gzFile structure to return */
-    state = (gz_statep)(gz_state*)malloc(sizeof(gz_state));
+    state.state = (gz_state*)malloc(sizeof(gz_state));
     if (state.state == NULL)
         return NULL;
     state.state->size = 0;            /* no buffers allocated yet */
@@ -266,7 +266,7 @@ local gzFile gz_open(path, fd, mode)
     gz_reset(state);
 
     /* return stream */
-    return (gzFile)state.file;
+    return state.file;
 }
 
 /* -- see zlib.h -- */
index d1250b90084da8ac6ca38d9bd6b355198bbe1ba1..21d5f84727aaefa0bef28b1e0413ead6dc6eeaeb 100644 (file)
@@ -6,6 +6,8 @@
  * For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
  */
 
+#include <assert.h>
+
 #include "gzguts.h"
 
 /* Local functions */
@@ -24,7 +26,7 @@ local int gz_init(state)
     z_streamp strm = &(state.state->strm);
 
     /* allocate input buffer (double size for gzprintf) */
-    state.state->in = (unsigned char *)malloc(state.state->want << 1);
+    state.state->in = (unsigned char*)malloc(state.state->want << 1);
     if (state.state->in == NULL) {
         gz_error(state, Z_MEM_ERROR, "out of memory");
         return -1;
@@ -33,7 +35,7 @@ local int gz_init(state)
     /* only need output buffer and deflate state if compressing */
     if (!state.state->direct) {
         /* allocate output buffer */
-        state.state->out = (unsigned char *)malloc(state.state->want);
+        state.state->out = (unsigned char*)malloc(state.state->want);
         if (state.state->out == NULL) {
             free(state.state->in);
             gz_error(state, Z_MEM_ERROR, "out of memory");
@@ -284,6 +286,7 @@ z_size_t ZEXPORT gzfwrite(buf, size, nitems, file)
     gz_statep state;
 
     /* get internal structure */
+    assert(size != 0);
     if (file == NULL)
         return 0;
     state = (gz_statep)file;
@@ -294,7 +297,7 @@ z_size_t ZEXPORT gzfwrite(buf, size, nitems, file)
 
     /* compute bytes to read -- error on overflow */
     len = nitems * size;
-    if (size && len / size != nitems) {
+    if (size && (len / size != nitems)) {
         gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
         return 0;
     }