Blame SOURCES/file-5.33-fix-compression.patch

095a43
diff --git a/src/compress.c b/src/compress.c
095a43
index cb11303..5677412 100644
095a43
--- a/src/compress.c
095a43
+++ b/src/compress.c
095a43
@@ -723,25 +723,24 @@ uncompressbuf(int fd, size_t bytes_max, size_t method, const unsigned char *old,
095a43
 		rv = OKDATA;
095a43
 		if ((r = sread(fdp[STDOUT_FILENO][0], *newch, bytes_max, 0)) > 0)
095a43
 			break;
095a43
-		DPRINTF("Read stdout failed %d (%s)\n", fdp[STDOUT_FILENO][0],
095a43
-		    r != -1 ? strerror(errno) : "no data");
095a43
-
095a43
-		rv = ERRDATA;
095a43
-		if (r == 0 &&
095a43
-		    (r = sread(fdp[STDERR_FILENO][0], *newch, bytes_max, 0)) > 0)
095a43
-		{
095a43
+		if (r < 0) {
095a43
+			rv = ERRDATA;
095a43
+			DPRINTF("Read stdout failed %d (%s)\n", fdp[STDOUT_FILENO][0],
095a43
+				strerror(errno));
095a43
+			goto err;
095a43
+		} else if ((r = sread(fdp[STDERR_FILENO][0], *newch, bytes_max, 0)) > 0){
095a43
+			rv = ERRDATA;
095a43
 			r = filter_error(*newch, r);
095a43
 			break;
095a43
 		}
095a43
-		free(*newch);
095a43
 		if  (r == 0)
095a43
-			rv = makeerror(newch, n, "Read failed, %s",
095a43
-			    strerror(errno));
095a43
-		else
095a43
-			rv = makeerror(newch, n, "No data");
095a43
+			break;
095a43
+		free(*newch);
095a43
+		rv = ERRDATA;
095a43
+		rv = makeerror(newch, n, "Read stderr failed, %s",
095a43
+		    strerror(errno));
095a43
 		goto err;
095a43
 	}
095a43
-
095a43
 	*n = r;
095a43
 	/* NUL terminate, as every buffer is handled here. */
095a43
 	(*newch)[*n] = '\0';