Fix warnings about ignoring fgets return value
[oweals/openssl.git] / apps / openssl.c
index 02d86d546df3e8198bf7d70d18d0aef2ce9281b1..8e2d8dd569de402ccadcc2e9d74792d416ed59a4 100644 (file)
@@ -56,7 +56,7 @@
  * [including the GNU Public Licence.]
  */
 /* ====================================================================
- * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -147,6 +147,7 @@ char *default_config_file=NULL;
 #ifdef MONOLITH
 CONF *config=NULL;
 BIO *bio_err=NULL;
+int in_FIPS_mode=0;
 #endif
 
 
@@ -232,6 +233,19 @@ int main(int Argc, char *Argv[])
        arg.data=NULL;
        arg.count=0;
 
+       in_FIPS_mode = 0;
+
+#ifdef OPENSSL_FIPS
+       if(getenv("OPENSSL_FIPS")) {
+               if (!FIPS_mode_set(1)) {
+                       ERR_load_crypto_strings();
+                       ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
+                       EXIT(1);
+               }
+               in_FIPS_mode = 1;
+               }
+#endif
+
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
                        BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
@@ -319,7 +333,8 @@ int main(int Argc, char *Argv[])
                        else    prompt="OpenSSL> ";
                        fputs(prompt,stdout);
                        fflush(stdout);
-                       fgets(p,n,stdin);
+                       if (!fgets(p,n,stdin))
+                               goto end;
                        if (p[0] == '\0') goto end;
                        i=strlen(p);
                        if (i <= 1) break;
@@ -445,7 +460,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
                for (fp=functions; fp->name != NULL; fp++)
                        {
                        nl=0;
+#ifdef OPENSSL_NO_CAMELLIA
                        if (((i++) % 5) == 0)
+#else
+                       if (((i++) % 4) == 0)
+#endif
                                {
                                BIO_printf(bio_err,"\n");
                                nl=1;
@@ -466,7 +485,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
                                        BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
                                        }
                                }
+#ifdef OPENSSL_NO_CAMELLIA
                        BIO_printf(bio_err,"%-15s",fp->name);
+#else
+                       BIO_printf(bio_err,"%-18s",fp->name);
+#endif
                        }
                BIO_printf(bio_err,"\n\n");
                ret=0;