changeset 20501:6be0cfc31ba0

lib-compression: istream-zlib/lzma now differentiates between temporary errors and corruption.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 06 Jul 2016 13:24:03 +0300
parents e67b0284f6d1
children b6ae3fe5def8
files src/lib-compression/istream-lzma.c src/lib-compression/istream-zlib.c
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-compression/istream-lzma.c	Tue Jul 05 20:58:29 2016 +0300
+++ b/src/lib-compression/istream-lzma.c	Wed Jul 06 13:24:03 2016 +0300
@@ -153,7 +153,7 @@
 		return -1;
 	case LZMA_OPTIONS_ERROR:
 		lzma_read_error(zstream, "Unsupported xz options");
-		stream->istream.stream_errno = EINVAL;
+		stream->istream.stream_errno = EIO;
 		return -1;
 	case LZMA_MEM_ERROR:
 		i_fatal_status(FATAL_OUTOFMEM, "lzma.read(%s): Out of memory",
@@ -168,7 +168,7 @@
 	default:
 		lzma_read_error(zstream, t_strdup_printf(
 			"lzma_code() failed with %d", ret));
-		stream->istream.stream_errno = EINVAL;
+		stream->istream.stream_errno = EIO;
 		return -1;
 	}
 	if (out_size == 0) {
--- a/src/lib-compression/istream-zlib.c	Tue Jul 05 20:58:29 2016 +0300
+++ b/src/lib-compression/istream-zlib.c	Wed Jul 06 13:24:03 2016 +0300
@@ -282,7 +282,7 @@
 		break;
 	case Z_NEED_DICT:
 		zlib_read_error(zstream, "can't read file without dict");
-		stream->istream.stream_errno = EINVAL;
+		stream->istream.stream_errno = EIO;
 		return -1;
 	case Z_DATA_ERROR:
 		zlib_read_error(zstream, "corrupted data");