]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix genstr/genconf option in asn1parse
authorNeil Horman <nhorman@openssl.org>
Tue, 5 Dec 2023 19:50:01 +0000 (14:50 -0500)
committerNeil Horman <nhorman@openssl.org>
Wed, 13 Dec 2023 16:10:30 +0000 (11:10 -0500)
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 <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22957)

apps/asn1parse.c

index 097b0cc1eddfb49274ffe16a9e115aa0b34f2892..6597a6180b0a2945d2604fb8b47c208e712e24ff 100644 (file)
@@ -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);