Fixes for dgst tool. Initialize md_name, sig_name properly. Return error code
authorDr. Stephen Henson <steve@openssl.org>
Mon, 21 May 2007 15:53:30 +0000 (15:53 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 21 May 2007 15:53:30 +0000 (15:53 +0000)
on failure. Keep output format consistent with previous versions.

Also flush stdout after printing ACCEPT in s_server.

apps/dgst.c
apps/s_server.c

index 7e79868e7ac3672ff5de6a3b6e56c1b6e1528dd9..67bc8d382a03056fa0c16e5e8f0565b41fcb68dd 100644 (file)
@@ -85,7 +85,7 @@ int MAIN(int argc, char **argv)
        {
        ENGINE *e = NULL;
        unsigned char *buf=NULL;
-       int i,err=0;
+       int i,err=1;
        const EVP_MD *md=NULL,*m;
        BIO *in=NULL,*inp;
        BIO *bmd=NULL;
@@ -234,7 +234,6 @@ int MAIN(int argc, char **argv)
 
        if(do_verify && !sigfile) {
                BIO_printf(bio_err, "No signature to verify: use the -signature option\n");
-               err = 1; 
                goto end;
        }
 
@@ -288,7 +287,6 @@ int MAIN(int argc, char **argv)
                        SN_whirlpool,SN_whirlpool);
 #endif
                err=1;
-               goto end;
                }
 
        in=BIO_new(BIO_s_file());
@@ -313,8 +311,10 @@ int MAIN(int argc, char **argv)
                }
 
        if(out_bin == -1) {
-               if(keyfile) out_bin = 1;
-               else out_bin = 0;
+               if(keyfile)
+                       out_bin = 1;
+               else
+                       out_bin = 0;
        }
 
        if(randfile)
@@ -494,13 +494,8 @@ int MAIN(int argc, char **argv)
                }
        else
                {
-               const char *md_name, *sig_name;
-               if(out_bin)
-                       {
-                       md_name = NULL;
-                       sig_name = NULL;
-                       }
-               else
+               const char *md_name = NULL, *sig_name = NULL;
+               if(!out_bin)
                        {
                        if (sigkey)
                                {
@@ -512,6 +507,7 @@ int MAIN(int argc, char **argv)
                                }
                        md_name = EVP_MD_name(md);
                        }
+               err = 0;
                for (i=0; i<argc; i++)
                        {
                        int r;
@@ -608,11 +604,11 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
        else 
                {
                if (sig_name)
-                       BIO_printf(out, "%s-%s(%s)=", sig_name, md_name, file);
+                       BIO_printf(out, "%s-%s(%s)= ", sig_name, md_name, file);
                else if (md_name)
-                       BIO_printf(out, "%s(%s)=", md_name, file);
+                       BIO_printf(out, "%s(%s)= ", md_name, file);
                else
-                       BIO_printf(out, "(%s)=", file);
+                       BIO_printf(out, "(%s)= ", file);
                for (i=0; i<(int)len; i++)
                        {
                        if (sep && (i != 0))
index 28501eb43a2fea35c556083d8556b158f90cba1e..f9ee28e527b8457acc2001a67bdae27bee632146 100644 (file)
@@ -1447,6 +1447,7 @@ bad:
                }
 
        BIO_printf(bio_s_out,"ACCEPT\n");
+       BIO_flush(bio_s_out);
        if (www)
                do_server(port,socket_type,&accept_socket,www_body, context);
        else