summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/acl.c6
-rw-r--r--main/asterisk.c9
-rw-r--r--main/features.c4
-rw-r--r--main/pbx.c4
-rw-r--r--main/xmldoc.c6
5 files changed, 22 insertions, 7 deletions
diff --git a/main/acl.c b/main/acl.c
index 7616236bc..590202653 100644
--- a/main/acl.c
+++ b/main/acl.c
@@ -533,7 +533,11 @@ int ast_apply_ha(const struct ast_ha *ha, const struct ast_sockaddr *addr)
if (ast_sockaddr_is_ipv6(addr)) {
if (ast_sockaddr_is_ipv4_mapped(addr)) {
/* IPv4 ACLs apply to IPv4-mapped addresses */
- ast_sockaddr_ipv4_mapped(addr, &mapped_addr);
+ if (!ast_sockaddr_ipv4_mapped(addr, &mapped_addr)) {
+ ast_log(LOG_ERROR, "%s provided to ast_sockaddr_ipv4_mapped could not be converted. That shouldn't be possible.\n",
+ ast_sockaddr_stringify(addr));
+ continue;
+ }
addr_to_use = &mapped_addr;
} else {
/* An IPv4 ACL does not apply to an IPv6 address */
diff --git a/main/asterisk.c b/main/asterisk.c
index d7fda9588..972c2fbb1 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -1468,7 +1468,11 @@ static int ast_makesocket(void)
ast_log(LOG_WARNING, "Unable to register network verboser?\n");
}
- ast_pthread_create_background(&lthread, NULL, listener, NULL);
+ if (ast_pthread_create_background(&lthread, NULL, listener, NULL)) {
+ ast_log(LOG_WARNING, "Unable to create listener thread.\n");
+ close(ast_socket);
+ return -1;
+ }
if (!ast_strlen_zero(ast_config_AST_CTL_OWNER)) {
struct passwd *pw;
@@ -3345,9 +3349,8 @@ static void *canary_thread(void *unused)
sleep(120);
for (;;) {
- stat(canary_filename, &canary_stat);
now = ast_tvnow();
- if (now.tv_sec > canary_stat.st_mtime + 60) {
+ if (stat(canary_filename, &canary_stat) || now.tv_sec > canary_stat.st_mtime + 60) {
ast_log(LOG_WARNING,
"The canary is no more. He has ceased to be! "
"He's expired and gone to meet his maker! "
diff --git a/main/features.c b/main/features.c
index c9ea91ac5..4ff629fb4 100644
--- a/main/features.c
+++ b/main/features.c
@@ -8658,7 +8658,9 @@ int ast_features_init(void)
return res;
}
ast_cli_register_multiple(cli_features, ARRAY_LEN(cli_features));
- ast_pthread_create(&parking_thread, NULL, do_parking_thread, NULL);
+ if (ast_pthread_create(&parking_thread, NULL, do_parking_thread, NULL)) {
+ return -1;
+ }
ast_register_application2(app_bridge, bridge_exec, NULL, NULL, NULL);
res = ast_register_application2(parkedcall, parked_call_exec, NULL, NULL, NULL);
if (!res)
diff --git a/main/pbx.c b/main/pbx.c
index e4774f2ef..f04051ceb 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -6709,8 +6709,10 @@ static int show_debug_helper(int fd, const char *context, const char *exten, str
dpc->context_existence = 1;
- if (!c->pattern_tree)
+ if (!c->pattern_tree) {
+ /* Ignore check_return warning from Coverity for ast_exists_extension below */
ast_exists_extension(NULL, c->name, "s", 1, ""); /* do this to force the trie to built, if it is not already */
+ }
ast_rdlock_context(c);
diff --git a/main/xmldoc.c b/main/xmldoc.c
index 700813457..f3deb5dc3 100644
--- a/main/xmldoc.c
+++ b/main/xmldoc.c
@@ -1715,7 +1715,11 @@ static void xmldoc_parse_parameter(struct ast_xml_node *fixnode, const char *tab
ast_xml_free_attr(paramname);
printed = 1;
}
- xmldoc_parse_para(node, internaltabs, "\n", buffer);
+ if (xmldoc_parse_para(node, internaltabs, "\n", buffer)) {
+ /* If anything ever goes in below this condition before the continue below,
+ * we should probably continue immediately. */
+ continue;
+ }
continue;
} else if ((xmldoc_parse_specialtags(node, internaltabs, "\n", buffer))) {
continue;