aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_crypto.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-02 23:56:13 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-02 23:56:13 +0000
commitee246d0e0519c6aa7cb0aea17ea92c9a5c2dc16f (patch)
tree80dccc06626175232f48f4c2cde5b9f5ba602632 /res/res_crypto.c
parent11aedae560fa003f20ee8d7a02b7aa2fc17ae13a (diff)
import gcc 4.3.2 warning fixes from trunk, with a few changes specific to this branch
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@153710 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_crypto.c')
-rw-r--r--res/res_crypto.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/res/res_crypto.c b/res/res_crypto.c
index f1a2234fd..e55abe891 100644
--- a/res/res_crypto.c
+++ b/res/res_crypto.c
@@ -106,7 +106,11 @@ static int pw_cb(char *buf, int size, int rwflag, void *userdata)
snprintf(prompt, sizeof(prompt), ">>>> passcode for %s key '%s': ",
key->ktype == AST_KEY_PRIVATE ? "PRIVATE" : "PUBLIC", key->name);
- write(key->outfd, prompt, strlen(prompt));
+ if (write(key->outfd, prompt, strlen(prompt)) < 0) {
+ ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno));
+ key->infd = -2;
+ return -1;
+ }
memset(buf, 0, sizeof(buf));
tmp = ast_hide_password(key->infd);
memset(buf, 0, size);
@@ -177,7 +181,9 @@ static struct ast_key *try_load_key(const char *dir, const char *fname, int ifd,
while(!feof(f)) {
/* Calculate a "whatever" quality md5sum of the key */
char buf[256] = "";
- fgets(buf, sizeof(buf), f);
+ if (!fgets(buf, sizeof(buf), f)) {
+ continue;
+ }
if (!feof(f))
MD5Update(&md5, (unsigned char *) buf, strlen(buf));
}