aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-01 18:22:39 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-01 18:22:39 +0000
commitea96823f2626e2a4178eec54f8a78a666d376ac1 (patch)
treed6fd63606de3355d2e0f7bb2ab751116095a1451 /res
parent1c4fdfd503883d806ba05da5d0e9156b54a4d51b (diff)
fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings being passed to printf()-like functions and ignored results from read()/write() and friends
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@153337 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_agi.c5
-rw-r--r--res/res_crypto.c9
-rw-r--r--res/res_indications.c2
-rw-r--r--res/res_musiconhold.c20
4 files changed, 26 insertions, 10 deletions
diff --git a/res/res_agi.c b/res/res_agi.c
index a60155087..a2ff4ef3e 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -1870,7 +1870,8 @@ static enum agi_result run_agi(struct ast_channel *chan, char *request, AGI *agi
/* If it's voice, write it to the audio pipe */
if ((agi->audio > -1) && (f->frametype == AST_FRAME_VOICE)) {
/* Write, ignoring errors */
- write(agi->audio, f->data, f->datalen);
+ if (write(agi->audio, f->data, f->datalen) < 0) {
+ }
}
ast_frfree(f);
}
@@ -1959,7 +1960,7 @@ static int handle_showagi(int fd, int argc, char *argv[])
if (argc > 2) {
e = find_command(argv + 2, 1);
if (e)
- ast_cli(fd, e->usage);
+ ast_cli(fd, "%s", e->usage);
else {
if (find_command(argv + 2, -1)) {
return help_workhorse(fd, argv + 1);
diff --git a/res/res_crypto.c b/res/res_crypto.c
index eea8356af..c2c33d015 100644
--- a/res/res_crypto.c
+++ b/res/res_crypto.c
@@ -118,7 +118,11 @@ static int pw_cb(char *buf, int size, int rwflag, void *userdata)
if (key->infd > -1) {
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) {
+ /* Note that we were at least called */
+ key->infd = -2;
+ return -1;
+ }
memset(buf, 0, sizeof(buf));
tmp = ast_hide_password(key->infd);
memset(buf, 0, size);
@@ -194,8 +198,7 @@ static struct ast_key *try_load_key (char *dir, char *fname, int ifd, int ofd, i
/* Calculate a "whatever" quality md5sum of the key */
char buf[256];
memset(buf, 0, 256);
- fgets(buf, sizeof(buf), f);
- if (!feof(f)) {
+ if (fgets(buf, sizeof(buf), f)) {
MD5Update(&md5, (unsigned char *) buf, strlen(buf));
}
}
diff --git a/res/res_indications.c b/res/res_indications.c
index 2147546af..05382a0cb 100644
--- a/res/res_indications.c
+++ b/res/res_indications.c
@@ -179,7 +179,7 @@ static int handle_show_indications(int fd, int argc, char *argv[])
if (tz->nrringcadence)
j--;
ast_copy_string(buf+j,"\n",sizeof(buf)-j);
- ast_cli(fd,buf);
+ ast_cli(fd, "%s", buf);
for (ts=tz->tones; ts; ts=ts->next)
ast_cli(fd,"%-7.7s %-15.15s %s\n",tz->country,ts->name,ts->data);
break;
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index ed2b55f0e..255f8d5d9 100644
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -482,7 +482,10 @@ static int spawn_mp3(struct mohclass *class)
}
}
/* Child */
- chdir(class->dir);
+ if (chdir(class->dir) < 0) {
+ ast_log(LOG_WARNING, "chdir() failed: %s\n", strerror(errno));
+ _exit(1);
+ }
if (ast_test_flag(class, MOH_CUSTOM)) {
execv(argv[0], argv);
} else {
@@ -817,8 +820,14 @@ static int moh_scan_files(struct mohclass *class) {
class->total_files = 0;
dirnamelen = strlen(class->dir) + 2;
- getcwd(path, sizeof(path));
- chdir(class->dir);
+ if (!getcwd(path, sizeof(path))) {
+ ast_log(LOG_WARNING, "getcwd() failed: %s\n", strerror(errno));
+ return -1;
+ }
+ if (chdir(class->dir) < 0) {
+ ast_log(LOG_WARNING, "chdir() failed: %s\n", strerror(errno));
+ return -1;
+ }
while ((files_dirent = readdir(files_DIR))) {
/* The file name must be at least long enough to have the file type extension */
if ((strlen(files_dirent->d_name) < 4))
@@ -857,7 +866,10 @@ static int moh_scan_files(struct mohclass *class) {
}
closedir(files_DIR);
- chdir(path);
+ if (chdir(path) < 0) {
+ ast_log(LOG_WARNING, "chdir() failed: %s\n", strerror(errno));
+ return -1;
+ }
return class->total_files;
}