Commit 773da093 authored by Bernd Edlinger's avatar Bernd Edlinger
Browse files

Remove code that prints "<SPACES/NULS>" in hexdumps


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: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5332)

(cherry picked from commit 751485c6)
parent 575c69f9
Loading
Loading
Loading
Loading
+2 −17
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@
#include "cryptlib.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))

@@ -79,17 +78,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) {
@@ -140,14 +132,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_FP_API