From f4d8b29a26cc3ee0ef37e2073c192bdbb2b796c4 Mon Sep 17 00:00:00 2001 From: Dmitry Belyavskiy Date: Fri, 20 Aug 2021 16:45:15 +0200 Subject: [PATCH] Get rid of warn_binary Current implementation of warn_binary introduces a regression when the content is passed in /dev/stdin as an explicit file name and reads the file to be processed twice otherwise. I suggest to reimplement this functionality after 3.0 if necessary. Fixes #16359 Reviewed-by: David von Oheimb (Merged from https://github.com/openssl/openssl/pull/16367) --- apps/cms.c | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/apps/cms.c b/apps/cms.c index c22027e3b1..b30273f171 100644 --- a/apps/cms.c +++ b/apps/cms.c @@ -272,31 +272,6 @@ static CMS_ContentInfo *load_content_info(int informat, BIO *in, int flags, return NULL; } -static void warn_binary(const char *file) -{ - BIO *bio; - unsigned char linebuf[1024], *cur, *end; - int len; - - if (file == NULL) - return; /* cannot give a warning for stdin input */ - if ((bio = bio_open_default(file, 'r', FORMAT_BINARY)) == NULL) - return; /* cannot give a proper warning since there is an error */ - while ((len = BIO_read(bio, linebuf, sizeof(linebuf))) > 0) { - end = linebuf + len; - for (cur = linebuf; cur < end; cur++) { - if (*cur == '\0' || *cur >= 0x80) { - BIO_printf(bio_err, "Warning: input file '%s' contains %s" - " character; better use -binary option\n", - file, *cur == '\0' ? "NUL" : "8-bit"); - goto end; - } - } - } - end: - BIO_free(bio); -} - int cms_main(int argc, char **argv) { CONF *conf = NULL; @@ -911,8 +886,6 @@ int cms_main(int argc, char **argv) goto end; } - if ((flags & CMS_BINARY) == 0) - warn_binary(infile); in = bio_open_default(infile, 'r', binary_files ? FORMAT_BINARY : informat); if (in == NULL) @@ -924,8 +897,6 @@ int cms_main(int argc, char **argv) goto end; if (contfile != NULL) { BIO_free(indata); - if ((flags & CMS_BINARY) == 0) - warn_binary(contfile); if ((indata = BIO_new_file(contfile, "rb")) == NULL) { BIO_printf(bio_err, "Can't read content file %s\n", contfile); goto end; -- 2.34.1