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: https://origsvn.digium.com/svn/asterisk/branches/1.4@153337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2008-11-01 18:22:39 +00:00
parent 705d6f3742
commit add5ff5b05
42 changed files with 2162 additions and 881 deletions

View File

@@ -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);

View File

@@ -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));
}
}

View File

@@ -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;

View File

@@ -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;
}