提交 ada22597 编写于 作者: B Bernd Edlinger

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: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5328)
上级 af0fcf7b
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <stdio.h> #include <stdio.h>
#include "bio_lcl.h" #include "bio_lcl.h"
#define TRUNCATE
#define DUMP_WIDTH 16 #define DUMP_WIDTH 16
#define DUMP_WIDTH_LESS_INDENT(i) (DUMP_WIDTH - ((i - (i > 6 ? 6 : i) + 3) / 4)) #define DUMP_WIDTH_LESS_INDENT(i) (DUMP_WIDTH - ((i - (i > 6 ? 6 : i) + 3) / 4))
...@@ -31,17 +30,10 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), ...@@ -31,17 +30,10 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
{ {
int ret = 0; int ret = 0;
char buf[288 + 1]; char buf[288 + 1];
int i, j, rows, trc, n; int i, j, rows, n;
unsigned char ch; unsigned char ch;
int dump_width; int dump_width;
trc = 0;
#ifdef TRUNCATE
for (; (len > 0) && ((s[len - 1] == ' ') || (s[len - 1] == '\0')); len--)
trc++;
#endif
if (indent < 0) if (indent < 0)
indent = 0; indent = 0;
else if (indent > 128) else if (indent > 128)
...@@ -95,13 +87,6 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), ...@@ -95,13 +87,6 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),
*/ */
ret += cb((void *)buf, n, u); ret += cb((void *)buf, n, u);
} }
#ifdef TRUNCATE
if (trc > 0) {
n = BIO_snprintf(buf, sizeof(buf), "%*s%04x - <SPACES/NULS>\n",
indent, "", len + trc);
ret += cb((void *)buf, n, u);
}
#endif
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册