Remove code that prints "<SPACES/NULS>" in hexdumps
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 12 Feb 2018 08:28:33 +0000 (09:28 +0100)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 12 Feb 2018 14:38:33 +0000 (15:38 +0100)
when the data block ends with SPACEs or NULs.

The problem is, you can't see if the data ends
with SPACE or NUL or a combination of both.

This can happen for instance with
openssl rsautl -decrypt -hexdump

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5332)

crypto/bio/b_dump.c

index c8601cb2b86d92fb6d69afd83695bee864a1d3a4..0bbe17ea35fecf28d2ed0779a2125ea43e3f85f8 100644 (file)
@@ -14,7 +14,6 @@
 #include <stdio.h>
 #include "bio_lcl.h"
 
-#define TRUNCATE
 #define DUMP_WIDTH      16
 #define DUMP_WIDTH_LESS_INDENT(i) (DUMP_WIDTH-((i-(i>6?6:i)+3)/4))
 
@@ -29,17 +28,10 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
 {
     int ret = 0;
     char buf[288 + 1], tmp[20], str[128 + 1];
-    int i, j, rows, trc;
+    int i, j, rows;
     unsigned char ch;
     int dump_width;
 
-    trc = 0;
-
-#ifdef TRUNCATE
-    for (; (len > 0) && ((s[len - 1] == ' ') || (s[len - 1] == '\0')); len--)
-        trc++;
-#endif
-
     if (indent < 0)
         indent = 0;
     if (indent) {
@@ -90,14 +82,7 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
          */
         ret += cb((void *)buf, strlen(buf), u);
     }
-#ifdef TRUNCATE
-    if (trc > 0) {
-        BIO_snprintf(buf, sizeof(buf), "%s%04x - <SPACES/NULS>\n", str,
-                     len + trc);
-        ret += cb((void *)buf, strlen(buf), u);
-    }
-#endif
-    return (ret);
+    return ret;
 }
 
 #ifndef OPENSSL_NO_STDIO