From 5abd8203cb03c3ebe23fd5febad432317a687252 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Thu, 27 Aug 2015 03:16:04 +0100 Subject: [PATCH] Fix : decompression i/o detects flush write errors --- Makefile | 2 +- NEWS | 10 ++++++++-- lib/Makefile | 5 ++--- lib/zstd.h | 2 +- programs/Makefile | 13 +++++++------ programs/fileio.c | 4 ++-- programs/unzstd.1 | 1 - programs/zstdcat.1 | 1 - 8 files changed, 21 insertions(+), 17 deletions(-) delete mode 120000 programs/unzstd.1 delete mode 120000 programs/zstdcat.1 diff --git a/Makefile b/Makefile index 1f7e6e823..87d6a035c 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ # ################################################################ # Version number -export VERSION=0.1.1 +export VERSION := 0.1.2 PRGDIR = programs ZSTDDIR = lib diff --git a/NEWS b/NEWS index 27d2b8a57..af1354992 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ -r0 -initial release +v0.1.2 + +v0.1.1 +fix compression bug +detects write-flush errors + +v0.1.0 +first release diff --git a/lib/Makefile b/lib/Makefile index 142baae71..c4e3b410a 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -32,7 +32,7 @@ # ################################################################ # Version numbers -VERSION?= 0.1.1 +VERSION?= 0.1.2 LIBVER_MAJOR=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` LIBVER_MINOR=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` LIBVER_PATCH=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` @@ -41,8 +41,7 @@ LIBVER = $(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH) DESTDIR?= PREFIX ?= /usr/local CFLAGS ?= -O3 -CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -LDFLAGS = -I. +CFLAGS += -I. -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-align -Wstrict-prototypes FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS) LIBDIR ?= $(PREFIX)/lib diff --git a/lib/zstd.h b/lib/zstd.h index 1e20b4f18..4caa385b5 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -47,7 +47,7 @@ extern "C" { **************************************/ #define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ #define ZSTD_VERSION_MINOR 1 /* for new (non-breaking) interface capabilities */ -#define ZSTD_VERSION_RELEASE 0 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */ #define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) unsigned ZSTD_versionNumber (void); diff --git a/programs/Makefile b/programs/Makefile index 9bcb42797..7046c087d 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -30,7 +30,7 @@ # fullbench32: Same as fullbench, but forced to compile in 32-bits mode # ########################################################################## -VERSION?= v0.1.1 +VERSION?= v0.1.2 DESTDIR?= PREFIX ?= /usr/local @@ -100,17 +100,17 @@ install: zstd @ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/unzstd @echo Installing man pages @install -m 644 zstd.1 $(DESTDIR)$(MANDIR)/zstd.1 - @install -m 644 zstdcat.1 $(DESTDIR)$(MANDIR)/zstdcat.1 - @install -m 644 unzstd.1 $(DESTDIR)$(MANDIR)/unzstd.1 + @ln -sf zstd.1 $(DESTDIR)$(MANDIR)/zstdcat.1 + @ln -sf zstd.1 $(DESTDIR)$(MANDIR)/unzstd.1 @echo zstd installation completed uninstall: rm -f $(DESTDIR)$(BINDIR)/zstdcat rm -f $(DESTDIR)$(BINDIR)/unzstd [ -x $(DESTDIR)$(BINDIR)/zstd$(EXT) ] && rm -f $(DESTDIR)$(BINDIR)/zstd$(EXT) + rm -f $(DESTDIR)$(MANDIR)/zstdcat.1 + rm -f $(DESTDIR)$(MANDIR)/unzstd.1 [ -f $(DESTDIR)$(MANDIR)/zstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstd.1 - [ -f $(DESTDIR)$(MANDIR)/zstdcat.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstdcat.1 - [ -f $(DESTDIR)$(MANDIR)/unzstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/unzstd.1 @echo zstd programs successfully uninstalled test: test-zstd test-fullbench test-fuzzer @@ -120,8 +120,9 @@ test32: test-zstd32 test-fullbench32 test-fuzzer32 test-all: test test32 memtest test-zstd: zstd datagen - @echo "*** zstd cli write error test ***" + @echo "*** flush write error test ***" echo foo | ./zstd > /dev/full; if [ $$? -eq 0 ] ; then echo "write error not detected!"; false; fi + echo foo | ./zstd | ./zstd -d > /dev/full; if [ $$? -eq 0 ] ; then echo "write error not detected!"; false; fi @echo "*** zstd round-trip tests *** " ./datagen | ./zstd -v | ./zstd -d > $(VOID) ./datagen -g256MB | ./zstd -v | ./zstd -d > $(VOID) diff --git a/programs/fileio.c b/programs/fileio.c index a496906dd..5b1ff0625 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -386,9 +386,9 @@ unsigned long long FIO_decompressFilename(const char* output_filename, const cha /* clean */ free(inBuff); free(outBuff); - fclose(finput); - fclose(foutput); ZSTD_freeDCtx(dctx); + fclose(finput); + if (fclose(foutput)) EXM_THROW(38, "Write error : cannot properly close %s", output_filename); return filesize; } diff --git a/programs/unzstd.1 b/programs/unzstd.1 deleted file mode 120000 index e66191d76..000000000 --- a/programs/unzstd.1 +++ /dev/null @@ -1 +0,0 @@ -zstd.1 \ No newline at end of file diff --git a/programs/zstdcat.1 b/programs/zstdcat.1 deleted file mode 120000 index e66191d76..000000000 --- a/programs/zstdcat.1 +++ /dev/null @@ -1 +0,0 @@ -zstd.1 \ No newline at end of file -- 2.47.2