Don't use FORMAT_BASE64 format when compressing / decompressing
authorRichard Levitte <levitte@openssl.org>
Wed, 13 Apr 2016 00:40:39 +0000 (02:40 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 13 Apr 2016 09:36:46 +0000 (11:36 +0200)
When compressing, the output / input is a binary format, not a text
format like BASE64.  This is important on Windows, where a ^Z in a
text file is seen as EOF, and there could be a ^Z somewhere in a
compressed file, cutting it short as input.

Reviewed-by: Matt Caswell <matt@openssl.org>
apps/enc.c

index 7869987bf12f480364b9c51af5199b659c3ff6fa..7f25009ba94d19cbe6411d2c897251808103aa6d 100644 (file)
@@ -313,12 +313,15 @@ int enc_main(int argc, char **argv)
     if (verbose)
         BIO_printf(bio_err, "bufsize=%d\n", bsize);
 
-    if (base64) {
-        if (enc)
-            outformat = FORMAT_BASE64;
-        else
-            informat = FORMAT_BASE64;
-    }
+#ifdef ZLIB
+    if (!do_zlib)
+#endif
+        if (base64) {
+            if (enc)
+                outformat = FORMAT_BASE64;
+            else
+                informat = FORMAT_BASE64;
+        }
 
     strbuf = app_malloc(SIZE, "strbuf");
     buff = app_malloc(EVP_ENCODE_LENGTH(bsize), "evp buffer");