summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_iax2.c12
-rw-r--r--channels/chan_sip.c10
-rw-r--r--channels/iax2-provision.c6
-rw-r--r--channels/sig_analog.c5
4 files changed, 26 insertions, 7 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index baee946f2..8903041db 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -4382,11 +4382,13 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
/* Whoops, we weren't supposed to exist! */
peer = peer_unref(peer);
break;
- }
+ }
} else if (!strcasecmp(tmp->name, "regseconds")) {
ast_get_time_t(tmp->value, &regseconds, 0, NULL);
} else if (!strcasecmp(tmp->name, "ipaddr")) {
- ast_sockaddr_parse(&peer->addr, tmp->value, PARSE_PORT_IGNORE);
+ if (!ast_sockaddr_parse(&peer->addr, tmp->value, PARSE_PORT_IGNORE)) {
+ ast_log(LOG_WARNING, "Failed to parse sockaddr '%s' for ipaddr of realtime peer '%s'\n", tmp->value, tmp->name);
+ }
} else if (!strcasecmp(tmp->name, "port")) {
ast_sockaddr_set_port(&peer->addr, atoi(tmp->value));
} else if (!strcasecmp(tmp->name, "host")) {
@@ -11653,6 +11655,7 @@ static void iax2_process_thread_cleanup(void *data)
ast_mutex_destroy(&thread->init_lock);
ast_cond_destroy(&thread->init_cond);
ast_free(thread);
+ /* Ignore check_return warning from Coverity for ast_atomic_dec_and_test below */
ast_atomic_dec_and_test(&iaxactivethreadcount);
}
@@ -12234,7 +12237,10 @@ static int start_network_thread(void)
AST_LIST_UNLOCK(&idle_list);
}
}
- ast_pthread_create_background(&netthreadid, NULL, network_thread, NULL);
+ if (ast_pthread_create_background(&netthreadid, NULL, network_thread, NULL)) {
+ ast_log(LOG_ERROR, "Failed to create new thread!\n");
+ return -1;
+ }
ast_verb(2, "%d helper threads started\n", threadcount);
return 0;
}
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index c7c6a38ca..de2c80e55 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -16384,7 +16384,9 @@ static void check_via(struct sip_pvt *p, struct sip_request *req)
p->sa = p->recv;
}
- ast_sockaddr_resolve_first(&tmp, c, 0);
+ if (ast_sockaddr_resolve_first(&tmp, c, 0)) {
+ ast_log(LOG_WARNING, "Could not resolve socket address for '%s'\n", c);
+ }
port = ast_sockaddr_port(&tmp);
ast_sockaddr_set_port(&p->sa,
port != 0 ? port : STANDARD_SIP_PORT);
@@ -16733,6 +16735,7 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
/* Finally, apply the guest policy */
if (sip_cfg.allowguest) {
+ /* Ignore check_return warning from Coverity for get_rpid below. */
get_rpid(p, req);
p->rtptimeout = global_rtptimeout;
p->rtpholdtimeout = global_rtpholdtimeout;
@@ -18682,7 +18685,10 @@ static int show_chanstats_cb(void *__cur, void *__arg, int flags)
return 0; /* don't care, we scan all channels */
}
- ast_rtp_instance_get_stats(cur->rtp, &stats, AST_RTP_INSTANCE_STAT_ALL);
+ if (ast_rtp_instance_get_stats(cur->rtp, &stats, AST_RTP_INSTANCE_STAT_ALL)) {
+ ast_log(LOG_WARNING, "Could not get RTP stats.\n");
+ return 0;
+ }
if (c && ast_channel_cdr(c) && !ast_tvzero(ast_channel_cdr(c)->start)) {
duration = (int)(ast_tvdiff_ms(ast_tvnow(), ast_channel_cdr(c)->start) / 1000);
diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c
index 03b042b10..eaa3b7432 100644
--- a/channels/iax2-provision.c
+++ b/channels/iax2-provision.c
@@ -258,7 +258,11 @@ int iax_provision_version(unsigned int *version, const char *template, int force
memset(&ied, 0, sizeof(ied));
ast_mutex_lock(&provlock);
- ast_db_get("iax/provisioning/cache", template, tmp, sizeof(tmp));
+ if (!(ast_db_get("iax/provisioning/cache", template, tmp, sizeof(tmp)))) {
+ ast_log(LOG_ERROR, "ast_db_get failed to retrieve iax/provisioning/cache\n");
+ ast_mutex_unlock(&provlock);
+ return -1;
+ }
if (sscanf(tmp, "v%30x", version) != 1) {
if (strcmp(tmp, "u")) {
ret = iax_provision_build(&ied, version, template, force);
diff --git a/channels/sig_analog.c b/channels/sig_analog.c
index 7112cf29d..63523358c 100644
--- a/channels/sig_analog.c
+++ b/channels/sig_analog.c
@@ -2744,7 +2744,10 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
analog_train_echocanceller(p);
ast_copy_string(p->dop.dialstr, p->echorest, sizeof(p->dop.dialstr));
p->dop.op = ANALOG_DIAL_OP_REPLACE;
- analog_dial_digits(p, ANALOG_SUB_REAL, &p->dop);
+ if (analog_dial_digits(p, ANALOG_SUB_REAL, &p->dop)) {
+ int dial_err = errno;
+ ast_log(LOG_WARNING, "Dialing failed on channel %d: %s\n", p->channel, strerror(dial_err));
+ }
p->echobreak = 0;
} else {
analog_set_dialing(p, 0);