summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsteve <steve>2009-10-04 16:42:55 +0000
committersteve <steve>2009-10-04 16:42:55 +0000
commit98a8d53f2e943a21654183640ed815f43c0e76a4 (patch)
tree19b4f3cb9d67404cb355b99b1caf17511dae1020
parent5ffbbe74102ba0f89a279efe0547934a252880d3 (diff)
downloadopenssl-98a8d53f2e943a21654183640ed815f43c0e76a4.tar.gz
Fix warnings about ignoring fgets return value
-rw-r--r--apps/ca.c14
-rw-r--r--apps/enc.c7
-rw-r--r--apps/openssl.c3
-rw-r--r--apps/req.c6
-rw-r--r--crypto/ui/ui_openssl.c11
5 files changed, 31 insertions, 10 deletions
diff --git a/apps/ca.c b/apps/ca.c
index 007b501d0..e92ad57d9 100644
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -1263,7 +1263,12 @@ bad:
BIO_printf(bio_err,"\n%d out of %d certificate requests certified, commit? [y/n]",total_done,total);
(void)BIO_flush(bio_err);
buf[0][0]='\0';
- fgets(buf[0],10,stdin);
+ if (!fgets(buf[0],10,stdin))
+ {
+ BIO_printf(bio_err,"CERTIFICATION CANCELED: I/O error\n");
+ ret=0;
+ goto err;
+ }
if ((buf[0][0] != 'y') && (buf[0][0] != 'Y'))
{
BIO_printf(bio_err,"CERTIFICATION CANCELED\n");
@@ -2122,7 +2127,12 @@ again2:
BIO_printf(bio_err,"Sign the certificate? [y/n]:");
(void)BIO_flush(bio_err);
buf[0]='\0';
- fgets(buf,sizeof(buf)-1,stdin);
+ if (!fgets(buf,sizeof(buf)-1,stdin))
+ {
+ BIO_printf(bio_err,"CERTIFICATE WILL NOT BE CERTIFIED: I/O error\n");
+ ok=0;
+ goto err;
+ }
if (!((buf[0] == 'y') || (buf[0] == 'Y')))
{
BIO_printf(bio_err,"CERTIFICATE WILL NOT BE CERTIFIED\n");
diff --git a/apps/enc.c b/apps/enc.c
index 53de51ad7..3c2c91e92 100644
--- a/apps/enc.c
+++ b/apps/enc.c
@@ -243,7 +243,12 @@ int MAIN(int argc, char **argv)
goto bad;
}
buf[0]='\0';
- fgets(buf,sizeof buf,infile);
+ if (!fgets(buf,sizeof buf,infile))
+ {
+ BIO_printf(bio_err,"unable to read key from '%s'\n",
+ file);
+ goto bad;
+ }
fclose(infile);
i=strlen(buf);
if ((i > 0) &&
diff --git a/apps/openssl.c b/apps/openssl.c
index c9d9fe928..851e63973 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -330,7 +330,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;
diff --git a/apps/req.c b/apps/req.c
index b97a9f187..65cb19b4e 100644
--- a/apps/req.c
+++ b/apps/req.c
@@ -1441,7 +1441,8 @@ start:
buf[0]='\0';
if (!batch)
{
- fgets(buf,sizeof buf,stdin);
+ if (!fgets(buf,sizeof buf,stdin))
+ return 0;
}
else
{
@@ -1499,7 +1500,8 @@ start:
buf[0]='\0';
if (!batch)
{
- fgets(buf,sizeof buf,stdin);
+ if (!fgets(buf,sizeof buf,stdin))
+ return 0;
}
else
{
diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c
index 99304394c..1bc25f48d 100644
--- a/crypto/ui/ui_openssl.c
+++ b/crypto/ui/ui_openssl.c
@@ -299,7 +299,7 @@ static int is_a_tty;
/* Declare static functions */
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
-static void read_till_nl(FILE *);
+static int read_till_nl(FILE *);
static void recsig(int);
static void pushsig(void);
static void popsig(void);
@@ -392,14 +392,16 @@ static int read_string(UI *ui, UI_STRING *uis)
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
/* Internal functions to read a string without echoing */
-static void read_till_nl(FILE *in)
+static int read_till_nl(FILE *in)
{
#define SIZE 4
char buf[SIZE+1];
do {
- fgets(buf,SIZE,in);
+ if (!fgets(buf,SIZE,in))
+ return 0;
} while (strchr(buf,'\n') == NULL);
+ return 1;
}
static volatile sig_atomic_t intr_signal;
@@ -447,7 +449,8 @@ static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
*p='\0';
}
else
- read_till_nl(tty_in);
+ if (!read_till_nl(tty_in))
+ goto error;
if (UI_set_result(ui, uis, result) >= 0)
ok=1;