Fix setting of debug callback in apps/enc.c
authorRichard Levitte <levitte@openssl.org>
Wed, 13 Apr 2016 00:43:45 +0000 (02:43 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 13 Apr 2016 00:43:45 +0000 (02:43 +0200)
Setting the debug callback on the in and out BIOs were done too early.
No debug callback was set on the zlib filter BIO.

Reviewed-by: Tim Hudson <tjh@openssl.org>
apps/enc.c

index 77df79d9532c18a9fb6431a33cba9fda79e90b7f..7869987bf12f480364b9c51af5199b659c3ff6fa 100644 (file)
@@ -323,13 +323,6 @@ int enc_main(int argc, char **argv)
     strbuf = app_malloc(SIZE, "strbuf");
     buff = app_malloc(EVP_ENCODE_LENGTH(bsize), "evp buffer");
 
-    if (debug) {
-        BIO_set_callback(in, BIO_debug_callback);
-        BIO_set_callback(out, BIO_debug_callback);
-        BIO_set_callback_arg(in, (char *)bio_err);
-        BIO_set_callback_arg(out, (char *)bio_err);
-    }
-
     if (infile == NULL) {
         unbuffer(stdin);
         in = dup_bio_in(informat);
@@ -381,6 +374,13 @@ int enc_main(int argc, char **argv)
     if (out == NULL)
         goto end;
 
+    if (debug) {
+        BIO_set_callback(in, BIO_debug_callback);
+        BIO_set_callback(out, BIO_debug_callback);
+        BIO_set_callback_arg(in, (char *)bio_err);
+        BIO_set_callback_arg(out, (char *)bio_err);
+    }
+
     rbio = in;
     wbio = out;
 
@@ -388,6 +388,10 @@ int enc_main(int argc, char **argv)
     if (do_zlib) {
         if ((bzl = BIO_new(BIO_f_zlib())) == NULL)
             goto end;
+        if (debug) {
+            BIO_set_callback(bzl, BIO_debug_callback);
+            BIO_set_callback_arg(bzl, (char *)bio_err);
+        }
         if (enc)
             wbio = BIO_push(bzl, wbio);
         else