From 992879aa431bca204375b53e5735f39a6ed539c7 Mon Sep 17 00:00:00 2001 From: George Joseph Date: Sat, 24 Oct 2015 12:08:41 -0600 Subject: [PATCH] build: GCC 5.1.x catches some new const, array bounds and missing paren issues Fixed 1 issue in each of the affected files. ASTERISK-25494 #close Reported-by: George Joseph Tested-by: George Joseph Change-Id: I818f149cd66a93b062df421e1c73c7942f5a4a77 --- channels/chan_dahdi.c | 5 +++++ channels/chan_skinny.c | 2 +- channels/sig_pri.c | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 2dbeeaa73f..f8ded8c948 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -18618,6 +18618,11 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct cadence_is_ok = 0; } + /* This check is only needed to satisfy the compiler that element_count can't cause an out of bounds */ + if (element_count >= ARRAY_LEN(c)) { + element_count = ARRAY_LEN(c) - 1; + } + /* Ring cadences cannot be negative */ for (i = 0; i < element_count; i++) { if (c[i] == 0) { diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 9462eb685c..4004a470c8 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -4379,7 +4379,7 @@ static int skinny_call(struct ast_channel *ast, const char *dest, int timeout) AST_LIST_TRAVERSE(ast_channel_varshead(ast), current, entries) { if (!(strcasecmp(ast_var_name(current),"SKINNY_AUTOANSWER"))) { - if (d->hookstate == SKINNY_ONHOOK && !sub->aa_sched < 0) { + if (d->hookstate == SKINNY_ONHOOK && !(sub->aa_sched < 0)) { char buf[24]; int aatime; char *stringp = buf, *curstr; diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 15a50c4042..cbd4068ca6 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -4500,7 +4500,7 @@ static void sig_pri_handle_subcmds(struct sig_pri_span *pri, int chanpos, int ev f.frametype = AST_FRAME_TEXT; f.subclass.integer = 0; f.offset = 0; - f.data.ptr = &subcmd->u.display.text; + f.data.ptr = (void *)&subcmd->u.display.text; f.datalen = subcmd->u.display.length + 1; ast_queue_frame(owner, &f); ast_channel_unlock(owner);