From: Neil Horman Date: Tue, 5 Dec 2023 19:50:01 +0000 (-0500) Subject: Fix genstr/genconf option in asn1parse X-Git-Tag: openssl-3.3.0-alpha1~482 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=749fcc0e3ce796474a15d6fac221e57daeacff1e;p=thirdparty%2Fopenssl.git Fix genstr/genconf option in asn1parse At some point the asn1parse applet was changed to default the inform to PEM, and defalt input file to stdin. Doing so broke the -genstr|conf options, in that, before we attempt to generate an ASN1 block from the provided genstr string, we attempt to read a PEM input from stdin. As a result, this command: openssl asn1parse -genstr OID:1.2.3.4 hangs because we are attempting a blocking read on stdin, waiting for data that never arrives Fix it by giving priority to genstr|genconf, such that, if set, will just run do_generate on that string and exit Reviewed-by: Hugo Landau Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/22957) --- diff --git a/apps/asn1parse.c b/apps/asn1parse.c index 097b0cc1edd..6597a6180b0 100644 --- a/apps/asn1parse.c +++ b/apps/asn1parse.c @@ -178,7 +178,7 @@ int asn1parse_main(int argc, char **argv) if ((buf = BUF_MEM_new()) == NULL) goto end; - if (informat == FORMAT_PEM) { + if (genstr == NULL && informat == FORMAT_PEM) { if (PEM_read_bio(in, &name, &header, &str, &num) != 1) { BIO_printf(bio_err, "Error reading PEM file\n"); ERR_print_errors(bio_err);