diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-10-04 16:43:21 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-10-04 16:43:21 +0000 |
commit | 2280f82fc6718b8cc07775f7083c0dd663c3ff47 (patch) | |
tree | 83dfb457eace074172e10048c3e5fc33591f590a /crypto/ui | |
parent | e6714faffbdfc551ab8b2a50954519dff4bc7b15 (diff) |
Fix warnings about ignoring fgets return value
Diffstat (limited to 'crypto/ui')
-rw-r--r-- | crypto/ui/ui_openssl.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 99304394c3..1bc25f48d5 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; |