Make the '-in' option in apps/passwd.c less mandatory
authorRichard Levitte <levitte@openssl.org>
Thu, 31 Mar 2016 06:29:39 +0000 (08:29 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 31 Mar 2016 06:31:50 +0000 (08:31 +0200)
Reviewed-by: Matt Caswell <matt@openssl.org>
apps/passwd.c

index f0ab24358010acac348767f5ebf2cc88f3374254..7ae9e8888012f8a92b9b2e976dfb737530c6c382 100644 (file)
@@ -201,14 +201,20 @@ int passwd_main(int argc, char **argv)
         goto opthelp;
 # endif
 
-    if (infile && in_stdin) {
+    if (infile != NULL && in_stdin) {
         BIO_printf(bio_err, "%s: Can't combine -in and -stdin\n", prog);
         goto end;
     }
 
-    in = bio_open_default(infile, 'r', FORMAT_TEXT);
-    if (in == NULL)
-        goto end;
+    if (infile != NULL || in_stdin) {
+        /*
+         * If in_stdin is true, we know that infile is NULL, and that
+         * bio_open_default() will give us back an alias for stdin.
+         */
+        in = bio_open_default(infile, 'r', FORMAT_TEXT);
+        if (in == NULL)
+            goto end;
+    }
 
     if (usecrypt)
         pw_maxlen = 8;