diff options
author | citats <citats@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-03-23 21:42:35 +0000 |
---|---|---|
committer | citats <citats@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-03-23 21:42:35 +0000 |
commit | 246901fb1f6c7b5e06c851ccd5d98d6e82a87643 (patch) | |
tree | 0af5f6b0866f5ae51d96af2539ee95e2191d34a3 | |
parent | fddef2db1c85e5903bd0b5c57e90c0c5c1a40ea1 (diff) |
Check to make sure opendir works in chan_iax2.c (bug 1283)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2539 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | channels/chan_iax2.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 59490d888..7050e7d72 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -1051,16 +1051,19 @@ static void reload_firmware(void) /* Now that we've freed them, load the new ones */ snprintf(dir, sizeof(dir), "%s/firmware/iax", (char *)ast_config_AST_VAR_DIR); fwd = opendir(dir); - while((de = readdir(fwd))) { - if (de->d_name[0] != '.') { - snprintf(fn, sizeof(fn), "%s/%s", dir, de->d_name); - if (!try_firmware(fn)) { - if (option_verbose > 1) - ast_verbose(VERBOSE_PREFIX_2 "Loaded firmware '%s'\n", de->d_name); + if (fwd) { + while((de = readdir(fwd))) { + if (de->d_name[0] != '.') { + snprintf(fn, sizeof(fn), "%s/%s", dir, de->d_name); + if (!try_firmware(fn)) { + if (option_verbose > 1) + ast_verbose(VERBOSE_PREFIX_2 "Loaded firmware '%s'\n", de->d_name); + } } } - } - closedir(fwd); + closedir(fwd); + } else + ast_log(LOG_WARNING, "Error opening firmware directory '%s': %s\n", dir, strerror(errno)); /* Clean up leftovers */ cur = waresl.wares; |