diff options
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_agent.c | 8 | ||||
-rw-r--r-- | channels/chan_dahdi.c | 34 | ||||
-rw-r--r-- | channels/chan_h323.c | 2 | ||||
-rw-r--r-- | channels/chan_iax2.c | 8 | ||||
-rw-r--r-- | channels/chan_mgcp.c | 16 | ||||
-rw-r--r-- | channels/chan_misdn.c | 2 | ||||
-rw-r--r-- | channels/chan_oss.c | 2 | ||||
-rw-r--r-- | channels/chan_phone.c | 2 | ||||
-rw-r--r-- | channels/chan_sip.c | 94 | ||||
-rw-r--r-- | channels/chan_skinny.c | 2 | ||||
-rw-r--r-- | channels/iax2-provision.c | 4 | ||||
-rw-r--r-- | channels/misdn_config.c | 10 |
12 files changed, 92 insertions, 92 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 1a69f6df8..c2b5b88da 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1444,9 +1444,9 @@ static struct ast_channel *agent_request(const char *type, int format, void *dat struct timeval tv; s = data; - if ((s[0] == '@') && (sscanf(s + 1, "%d", &groupoff) == 1)) { + if ((s[0] == '@') && (sscanf(s + 1, "%30d", &groupoff) == 1)) { groupmatch = (1 << groupoff); - } else if ((s[0] == ':') && (sscanf(s + 1, "%d", &groupoff) == 1)) { + } else if ((s[0] == ':') && (sscanf(s + 1, "%30d", &groupoff) == 1)) { groupmatch = (1 << groupoff); waitforagent = 1; } else @@ -2672,9 +2672,9 @@ static int agent_devicestate(void *data) int res = AST_DEVICE_INVALID; s = data; - if ((s[0] == '@') && (sscanf(s + 1, "%d", &groupoff) == 1)) + if ((s[0] == '@') && (sscanf(s + 1, "%30d", &groupoff) == 1)) groupmatch = (1 << groupoff); - else if ((s[0] == ':') && (sscanf(s + 1, "%d", &groupoff) == 1)) { + else if ((s[0] == ':') && (sscanf(s + 1, "%30d", &groupoff) == 1)) { groupmatch = (1 << groupoff); waitforagent = 1; } else diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 70830e024..75f43deeb 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -8310,7 +8310,7 @@ static struct ast_channel *dahdi_request(const char *type, int format, void *dat stringp = dest + 1; s = strsep(&stringp, "/"); - if ((res = sscanf(s, "%d%c%d", &x, &opt, &y)) < 1) { + if ((res = sscanf(s, "%30d%1c%30d", &x, &opt, &y)) < 1) { ast_log(LOG_WARNING, "Unable to determine group for data %s\n", (char *)data); return NULL; } @@ -8346,7 +8346,7 @@ static struct ast_channel *dahdi_request(const char *type, int format, void *dat channelmatch = x; } #ifdef HAVE_PRI - else if ((res = sscanf(s, "%d:%d%c%d", &trunkgroup, &crv, &opt, &y)) > 1) { + else if ((res = sscanf(s, "%30d:%30d%c%30d", &trunkgroup, &crv, &opt, &y)) > 1) { if ((trunkgroup < 1) || (crv < 1)) { ast_log(LOG_WARNING, "Unable to determine trunk group and CRV for data %s\n", (char *)data); return NULL; @@ -8369,7 +8369,7 @@ static struct ast_channel *dahdi_request(const char *type, int format, void *dat p = pris[x].crvs; } #endif - else if ((res = sscanf(s, "%d%c%d", &x, &opt, &y)) < 1) { + else if ((res = sscanf(s, "%30d%1c%30d", &x, &opt, &y)) < 1) { ast_log(LOG_WARNING, "Unable to determine channel for data %s\n", (char *)data); return NULL; } else { @@ -10604,7 +10604,7 @@ static int dahdi_show_channel(int fd, int argc, char **argv) return RESULT_SHOWUSAGE; #ifdef HAVE_PRI if ((c = strchr(argv[3], ':'))) { - if (sscanf(argv[3], "%d:%d", &trunkgroup, &channel) != 2) + if (sscanf(argv[3], "%30d:%30d", &trunkgroup, &channel) != 2) return RESULT_SHOWUSAGE; if ((trunkgroup < 1) || (channel < 1)) return RESULT_SHOWUSAGE; @@ -11231,7 +11231,7 @@ static int build_channels(struct dahdi_chan_conf *conf, int iscrv, const char *v #ifdef HAVE_PRI pri = NULL; if (iscrv) { - if (sscanf(c, "%d:%n", &trunkgroup, &y) != 1) { + if (sscanf(c, "%30d:%n", &trunkgroup, &y) != 1) { ast_log(LOG_WARNING, "CRV must begin with trunkgroup followed by a colon at line %d\n", lineno); return -1; } @@ -11254,9 +11254,9 @@ static int build_channels(struct dahdi_chan_conf *conf, int iscrv, const char *v #endif while ((chan = strsep(&c, ","))) { - if (sscanf(chan, "%d-%d", &start, &finish) == 2) { + if (sscanf(chan, "%30d-%30d", &start, &finish) == 2) { /* Range */ - } else if (sscanf(chan, "%d", &start)) { + } else if (sscanf(chan, "%30d", &start)) { /* Just one */ finish = start; } else if (!strcasecmp(chan, "pseudo")) { @@ -11331,7 +11331,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct int res; char policy[21] = ""; - res = sscanf(v->value, "%d,%20s", &confp->chan.buf_no, policy); + res = sscanf(v->value, "%30d,%20s", &confp->chan.buf_no, policy); if (res != 2) { ast_log(LOG_WARNING, "Parsing buffers option data failed, using defaults.\n"); confp->chan.buf_no = numbufs; @@ -11364,11 +11364,11 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct } else if (!strcasecmp(v->name, "dring3context")) { ast_copy_string(drings.ringContext[2].contextData, v->value, sizeof(drings.ringContext[2].contextData)); } else if (!strcasecmp(v->name, "dring1")) { - sscanf(v->value, "%d,%d,%d", &drings.ringnum[0].ring[0], &drings.ringnum[0].ring[1], &drings.ringnum[0].ring[2]); + sscanf(v->value, "%30d,%30d,%30d", &drings.ringnum[0].ring[0], &drings.ringnum[0].ring[1], &drings.ringnum[0].ring[2]); } else if (!strcasecmp(v->name, "dring2")) { - sscanf(v->value, "%d,%d,%d", &drings.ringnum[1].ring[0], &drings.ringnum[1].ring[1], &drings.ringnum[1].ring[2]); + sscanf(v->value, "%30d,%30d,%30d", &drings.ringnum[1].ring[0], &drings.ringnum[1].ring[1], &drings.ringnum[1].ring[2]); } else if (!strcasecmp(v->name, "dring3")) { - sscanf(v->value, "%d,%d,%d", &drings.ringnum[2].ring[0], &drings.ringnum[2].ring[1], &drings.ringnum[2].ring[2]); + sscanf(v->value, "%30d,%30d,%30d", &drings.ringnum[2].ring[0], &drings.ringnum[2].ring[1], &drings.ringnum[2].ring[2]); } else if (!strcasecmp(v->name, "usecallerid")) { confp->chan.use_callerid = ast_true(v->value); } else if (!strcasecmp(v->name, "cidsignalling")) { @@ -11423,7 +11423,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct } else if (!strcasecmp(v->name, "busycount")) { confp->chan.busycount = atoi(v->value); } else if (!strcasecmp(v->name, "busypattern")) { - if (sscanf(v->value, "%d,%d", &confp->chan.busy_tonelength, &confp->chan.busy_quietlength) != 2) { + if (sscanf(v->value, "%30d,%30d", &confp->chan.busy_tonelength, &confp->chan.busy_quietlength) != 2) { ast_log(LOG_ERROR, "busypattern= expects busypattern=tonelength,quietlength\n"); } } else if (!strcasecmp(v->name, "callprogress")) { @@ -11455,7 +11455,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct confp->chan.echocancel=128; } } else if (!strcasecmp(v->name, "echotraining")) { - if (sscanf(v->value, "%d", &y) == 1) { + if (sscanf(v->value, "%30d", &y) == 1) { if ((y < 10) || (y > 4000)) { ast_log(LOG_WARNING, "Echo training time must be within the range of 10 to 4000 ms at line %d\n", v->lineno); } else { @@ -11503,15 +11503,15 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct } else if (!strcasecmp(v->name, "transfertobusy")) { confp->chan.transfertobusy = ast_true(v->value); } else if (!strcasecmp(v->name, "rxgain")) { - if (sscanf(v->value, "%f", &confp->chan.rxgain) != 1) { + if (sscanf(v->value, "%30f", &confp->chan.rxgain) != 1) { ast_log(LOG_WARNING, "Invalid rxgain: %s\n", v->value); } } else if (!strcasecmp(v->name, "txgain")) { - if (sscanf(v->value, "%f", &confp->chan.txgain) != 1) { + if (sscanf(v->value, "%30f", &confp->chan.txgain) != 1) { ast_log(LOG_WARNING, "Invalid txgain: %s\n", v->value); } } else if (!strcasecmp(v->name, "tonezone")) { - if (sscanf(v->value, "%d", &confp->chan.tonezone) != 1) { + if (sscanf(v->value, "%30d", &confp->chan.tonezone) != 1) { ast_log(LOG_WARNING, "Invalid tonezone: %s\n", v->value); } } else if (!strcasecmp(v->name, "callerid")) { @@ -11865,7 +11865,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct ast_copy_string(original_args, v->value, sizeof(original_args)); /* 16 cadences allowed (8 pairs) */ - element_count = sscanf(v->value, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", &c[0], &c[1], &c[2], &c[3], &c[4], &c[5], &c[6], &c[7], &c[8], &c[9], &c[10], &c[11], &c[12], &c[13], &c[14], &c[15]); + element_count = sscanf(v->value, "%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d,%30d", &c[0], &c[1], &c[2], &c[3], &c[4], &c[5], &c[6], &c[7], &c[8], &c[9], &c[10], &c[11], &c[12], &c[13], &c[14], &c[15]); /* Cadence must be even (on/off) */ if (element_count % 2 == 1) { diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 40935acbc..700fdd174 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -2890,7 +2890,7 @@ static int reload_config(int is_reload) memcpy(&bindaddr.sin_addr, hp->h_addr, sizeof(bindaddr.sin_addr)); } } else if (!strcasecmp(v->name, "tos")) { - if (sscanf(v->value, "%d", &format)) { + if (sscanf(v->value, "%30d", &format)) { tos = format & 0xff; } else if (!strcasecmp(v->value, "lowdelay")) { tos = IPTOS_LOWDELAY; diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index a38e19d59..b06ec709a 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -9835,18 +9835,18 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, st peer->maxms = 0; } else if (!strcasecmp(v->value, "yes")) { peer->maxms = DEFAULT_MAXMS; - } else if (sscanf(v->value, "%d", &peer->maxms) != 1) { + } else if (sscanf(v->value, "%30d", &peer->maxms) != 1) { ast_log(LOG_WARNING, "Qualification of peer '%s' should be 'yes', 'no', or a number of milliseconds at line %d of iax.conf\n", peer->name, v->lineno); peer->maxms = 0; } } else if (!strcasecmp(v->name, "qualifysmoothing")) { peer->smoothing = ast_true(v->value); } else if (!strcasecmp(v->name, "qualifyfreqok")) { - if (sscanf(v->value, "%d", &peer->pokefreqok) != 1) { + if (sscanf(v->value, "%30d", &peer->pokefreqok) != 1) { ast_log(LOG_WARNING, "Qualification testing frequency of peer '%s' when OK should a number of milliseconds at line %d of iax.conf\n", peer->name, v->lineno); } } else if (!strcasecmp(v->name, "qualifyfreqnotok")) { - if (sscanf(v->value, "%d", &peer->pokefreqnotok) != 1) { + if (sscanf(v->value, "%30d", &peer->pokefreqnotok) != 1) { ast_log(LOG_WARNING, "Qualification testing frequency of peer '%s' when NOT OK should be a number of milliseconds at line %d of iax.conf\n", peer->name, v->lineno); } else ast_log(LOG_WARNING, "Set peer->pokefreqnotok to %d\n", peer->pokefreqnotok); } else if (!strcasecmp(v->name, "timezone")) { @@ -10390,7 +10390,7 @@ static int set_config(char *config_file, int reload) if (trunkfreq < 10) trunkfreq = 10; } else if (!strcasecmp(v->name, "autokill")) { - if (sscanf(v->value, "%d", &x) == 1) { + if (sscanf(v->value, "%30d", &x) == 1) { if (x >= 0) autokill = x; else diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 1d5114bee..159657b85 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -1863,7 +1863,7 @@ static int process_sdp(struct mgcp_subchannel *sub, struct mgcp_request *req) ast_log(LOG_WARNING, "Unable to lookup host in c= line, '%s'\n", c); return -1; } - if (sscanf(m, "audio %d RTP/AVP %n", &portno, &len) != 1) { + if (sscanf(m, "audio %30d RTP/AVP %n", &portno, &len) != 1) { ast_log(LOG_WARNING, "Unable to determine port number for RTP in '%s'\n", m); return -1; } @@ -1878,7 +1878,7 @@ static int process_sdp(struct mgcp_subchannel *sub, struct mgcp_request *req) ast_rtp_pt_clear(sub->rtp); codecs = ast_strdupa(m + len); while (!ast_strlen_zero(codecs)) { - if (sscanf(codecs, "%d%n", &codec, &len) != 1) { + if (sscanf(codecs, "%30d%n", &codec, &len) != 1) { if (codec_count) break; ast_log(LOG_WARNING, "Error in codec string '%s' at '%s'\n", m, codecs); @@ -1894,7 +1894,7 @@ static int process_sdp(struct mgcp_subchannel *sub, struct mgcp_request *req) sdpLineNum_iterator_init(&iterator); while ((a = get_sdp_iterate(&iterator, req, "a"))[0] != '\0') { char* mimeSubtype = ast_strdupa(a); /* ensures we have enough space */ - if (sscanf(a, "rtpmap: %u %[^/]/", &codec, mimeSubtype) != 2) + if (sscanf(a, "rtpmap: %30u %[^/]/", &codec, mimeSubtype) != 2) continue; /* Note: should really look at the 'freq' and '#chans' params too */ ast_rtp_set_rtpmap_type(sub->rtp, codec, "audio", mimeSubtype, 0); @@ -2028,7 +2028,7 @@ static int transmit_response(struct mgcp_subchannel *sub, char *msg, struct mgcp if (mgr) { /* Store MGCP response in case we have to retransmit */ memset(mgr, 0, sizeof(struct mgcp_response)); - sscanf(req->identifier, "%d", &mgr->seqno); + sscanf(req->identifier, "%30d", &mgr->seqno); time(&mgr->whensent); mgr->len = resp.len; memcpy(mgr->buf, resp.data, resp.len); @@ -3320,7 +3320,7 @@ static int find_and_retrans(struct mgcp_subchannel *sub, struct mgcp_request *re time_t now; struct mgcp_response *prev = NULL, *cur, *next, *answer=NULL; time(&now); - if (sscanf(req->identifier, "%d", &seqno) != 1) + if (sscanf(req->identifier, "%30d", &seqno) != 1) seqno = 0; cur = sub->parent->parent->responses; while(cur) { @@ -3378,7 +3378,7 @@ static int mgcpsock_read(int *id, int fd, short events, void *ignore) return 1; } - if (sscanf(req.verb, "%d", &result) && sscanf(req.identifier, "%d", &ident)) { + if (sscanf(req.verb, "%30d", &result) && sscanf(req.identifier, "%30d", &ident)) { /* Try to find who this message is for, if it's important */ sub = find_subchannel_and_lock(NULL, ident, &sin); if (sub) { @@ -4170,7 +4170,7 @@ static int reload_config(void) else capability &= ~format; } else if (!strcasecmp(v->name, "tos")) { - if (sscanf(v->value, "%d", &format) == 1) + if (sscanf(v->value, "%30d", &format) == 1) tos = format & 0xff; else if (!strcasecmp(v->value, "lowdelay")) tos = IPTOS_LOWDELAY; @@ -4185,7 +4185,7 @@ static int reload_config(void) else ast_log(LOG_WARNING, "Invalid tos value at line %d, should be 'lowdelay', 'throughput', 'reliability', 'mincost', or 'none'\n", v->lineno); } else if (!strcasecmp(v->name, "port")) { - if (sscanf(v->value, "%d", &ourport) == 1) { + if (sscanf(v->value, "%30d", &ourport) == 1) { bindaddr.sin_port = htons(ourport); } else { ast_log(LOG_WARNING, "Invalid port number '%s' at line %d of %s\n", v->value, v->lineno, config); diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 24d043a46..6e273d30d 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -1130,7 +1130,7 @@ static int misdn_show_config (int fd, int argc, char *argv[]) } return ok ? 0 : RESULT_SHOWUSAGE; } - if (!sscanf(argv[3], "%d", &onlyport) || onlyport < 0) { + if (!sscanf(argv[3], "%30d", &onlyport) || onlyport < 0) { ast_cli(fd, "Unknown option: %s\n", argv[3]); return RESULT_SHOWUSAGE; } diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 73297f4ef..df0803935 100644 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -1577,7 +1577,7 @@ static char active_usage[] = static void store_boost(struct chan_oss_pvt *o, char *s) { double boost = 0; - if (sscanf(s, "%lf", &boost) != 1) { + if (sscanf(s, "%30lf", &boost) != 1) { ast_log(LOG_WARNING, "invalid boost <%s>\n", s); return; } diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 55bda8b72..fd202844b 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -1243,7 +1243,7 @@ static int parse_gain_value(char *gain_type, char *value) float gain; /* try to scan number */ - if (sscanf(value, "%f", &gain) != 1) + if (sscanf(value, "%30f", &gain) != 1) { ast_log(LOG_ERROR, "Invalid %s value '%s' in '%s' config\n", value, gain_type, config); diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 0c403ea2c..98be29093 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2066,7 +2066,7 @@ static enum sip_result __sip_reliable_xmit(struct sip_pvt *p, int seqno, int res if (resp) { ast_set_flag(pkt, FLAG_RESPONSE); /* Parse out the response code */ - if (sscanf(pkt->data, "SIP/2.0 %d", &respid) == 1) { + if (sscanf(pkt->data, "SIP/2.0 %30d", &respid) == 1) { pkt->response_code = respid; } } @@ -2124,7 +2124,7 @@ static int __sip_autodestruct(const void *data) if (option_debug > 2) ast_log(LOG_DEBUG, "Re-scheduled destruction of SIP call %s\n", p->callid ? p->callid : "<unknown>"); append_history(p, "ReliableXmit", "timeout"); - if (sscanf(p->lastmsg, "Tx: %s", method_str) == 1 || sscanf(p->lastmsg, "Rx: %s", method_str) == 1) { + if (sscanf(p->lastmsg, "Tx: %30s", method_str) == 1 || sscanf(p->lastmsg, "Rx: %30s", method_str) == 1) { if (method_match(SIP_CANCEL, method_str) || method_match(SIP_BYE, method_str)) { ast_set_flag(&p->flags[0], SIP_NEEDDESTROY); } @@ -2974,7 +2974,7 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer, struct sockadd if (sin) { memcpy(&dialog->sa.sin_addr, &sin->sin_addr, sizeof(dialog->sa.sin_addr)); if (!sin->sin_port) { - if (ast_strlen_zero(port) || sscanf(port, "%u", &portno) != 1) { + if (ast_strlen_zero(port) || sscanf(port, "%30u", &portno) != 1) { portno = STANDARD_SIP_PORT; } } else { @@ -5040,7 +5040,7 @@ static int find_sdp(struct sip_request *req) content_length = get_header(req, "Content-Length"); if (!ast_strlen_zero(content_length)) { - if (sscanf(content_length, "%ud", &x) != 1) { + if (sscanf(content_length, "%30u", &x) != 1) { ast_log(LOG_WARNING, "Invalid Content-Length: %s\n", content_length); return 0; } @@ -5169,10 +5169,10 @@ static int get_ip_and_port_from_sdp(struct sip_request *req, const enum media_ty } /* We only want the m and c lines for audio */ for (m = get_sdp_iterate(&miterator, req, "m"); !ast_strlen_zero(m); m = get_sdp_iterate(&miterator, req, "m")) { - if ((media == SDP_AUDIO && ((sscanf(m, "audio %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || - (sscanf(m, "audio %d RTP/AVP %n", &x, &len) == 1 && len > 0))) || - (media == SDP_VIDEO && ((sscanf(m, "video %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || - (sscanf(m, "video %d RTP/AVP %n", &x, &len) == 1 && len > 0)))) { + if ((media == SDP_AUDIO && ((sscanf(m, "audio %30d/%30d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || + (sscanf(m, "audio %30d RTP/AVP %n", &x, &len) == 1 && len > 0))) || + (media == SDP_VIDEO && ((sscanf(m, "video %30d/%30d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || + (sscanf(m, "video %30d RTP/AVP %n", &x, &len) == 1 && len > 0)))) { /* See if there's a c= line for this media stream. * XXX There is no guarantee that we'll be grabbing the c= line for this * particular media stream here. However, this is the same logic used in process_sdp. @@ -5308,15 +5308,15 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) numberofports = 1; len = -1; - if ((sscanf(m, "audio %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || - (sscanf(m, "audio %d RTP/AVP %n", &x, &len) == 1 && len > 0)) { + if ((sscanf(m, "audio %30d/%30d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || + (sscanf(m, "audio %30d RTP/AVP %n", &x, &len) == 1 && len > 0)) { audio = TRUE; numberofmediastreams++; /* Found audio stream in this media definition */ portno = x; /* Scan through the RTP payload types specified in a "m=" line: */ for (codecs = m + len; !ast_strlen_zero(codecs); codecs = ast_skip_blanks(codecs + len)) { - if (sscanf(codecs, "%d%n", &codec, &len) != 1) { + if (sscanf(codecs, "%30d%n", &codec, &len) != 1) { ast_log(LOG_WARNING, "Error in codec string '%s'\n", codecs); return -1; } @@ -5324,15 +5324,15 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) ast_verbose("Found RTP audio format %d\n", codec); ast_rtp_set_m_type(newaudiortp, codec); } - } else if ((sscanf(m, "video %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || - (sscanf(m, "video %d RTP/AVP %n", &x, &len) == 1 && len >= 0)) { + } else if ((sscanf(m, "video %30d/%30d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) || + (sscanf(m, "video %30d RTP/AVP %n", &x, &len) == 1 && len >= 0)) { /* If it is not audio - is it video ? */ ast_clear_flag(&p->flags[0], SIP_NOVIDEO); numberofmediastreams++; vportno = x; /* Scan through the RTP payload types specified in a "m=" line: */ for (codecs = m + len; !ast_strlen_zero(codecs); codecs = ast_skip_blanks(codecs + len)) { - if (sscanf(codecs, "%d%n", &codec, &len) != 1) { + if (sscanf(codecs, "%30d%n", &codec, &len) != 1) { ast_log(LOG_WARNING, "Error in codec string '%s'\n", codecs); return -1; } @@ -5340,8 +5340,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) ast_verbose("Found RTP video format %d\n", codec); ast_rtp_set_m_type(newvideortp, codec); } - } else if (p->udptl && ( (sscanf(m, "image %d udptl t38%n", &x, &len) == 1 && len > 0) || - (sscanf(m, "image %d UDPTL t38%n", &x, &len) == 1 && len >= 0) )) { + } else if (p->udptl && ( (sscanf(m, "image %30d udptl t38%n", &x, &len) == 1 && len > 0) || + (sscanf(m, "image %30d UDPTL t38%n", &x, &len) == 1 && len >= 0) )) { if (debug) ast_verbose("Got T.38 offer in SDP in dialog %s\n", p->callid); udptlportno = x; @@ -5526,7 +5526,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) ast_rtp_codec_setpref(p->rtp, pref); } continue; - } else if (sscanf(a, "rtpmap: %u %[^/]/", &codec, mimeSubtype) == 2) { + } else if (sscanf(a, "rtpmap: %30u %[^/]/", &codec, mimeSubtype) == 2) { /* We have a rtpmap to handle */ int found = FALSE; /* We should propably check if this is an audio or video codec @@ -5576,11 +5576,11 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) /* Scan trough the a= lines for T38 attributes and set apropriate fileds */ iterator = req->sdp_start; while ((a = get_sdp_iterate(&iterator, req, "a"))[0] != '\0') { - if ((sscanf(a, "T38FaxMaxBuffer:%d", &x) == 1)) { + if ((sscanf(a, "T38FaxMaxBuffer:%30d", &x) == 1)) { found = 1; if (option_debug > 2) ast_log(LOG_DEBUG, "MaxBufferSize:%d\n",x); - } else if ((sscanf(a, "T38MaxBitRate:%d", &x) == 1) || (sscanf(a, "T38FaxMaxRate:%d", &x) == 1)) { + } else if ((sscanf(a, "T38MaxBitRate:%30d", &x) == 1) || (sscanf(a, "T38FaxMaxRate:%30d", &x) == 1)) { found = 1; if (option_debug > 2) ast_log(LOG_DEBUG,"T38MaxBitRate: %d\n",x); @@ -5604,7 +5604,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) peert38capability |= T38FAX_RATE_2400; break; } - } else if ((sscanf(a, "T38FaxVersion:%d", &x) == 1)) { + } else if ((sscanf(a, "T38FaxVersion:%30d", &x) == 1)) { found = 1; if (option_debug > 2) ast_log(LOG_DEBUG, "FaxVersion: %d\n",x); @@ -5612,7 +5612,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) peert38capability |= T38FAX_VERSION_0; else if (x == 1) peert38capability |= T38FAX_VERSION_1; - } else if ((sscanf(a, "T38FaxMaxDatagram:%d", &x) == 1) || (sscanf(a, "T38MaxDatagram:%d", &x) == 1)) { + } else if ((sscanf(a, "T38FaxMaxDatagram:%30d", &x) == 1) || (sscanf(a, "T38MaxDatagram:%30d", &x) == 1)) { found = 1; if (option_debug > 2) ast_log(LOG_DEBUG, "FaxMaxDatagram: %d\n",x); @@ -5620,7 +5620,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) ast_udptl_set_local_max_datagram(p->udptl, x); } else if ((strncmp(a, "T38FaxFillBitRemoval", 20) == 0)) { found = 1; - if ((sscanf(a, "T38FaxFillBitRemoval:%d", &x) == 1)) { + if ((sscanf(a, "T38FaxFillBitRemoval:%30d", &x) == 1)) { if (option_debug > 2) ast_log(LOG_DEBUG, "FillBitRemoval: %d\n",x); if (x == 1) @@ -5632,7 +5632,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) } } else if ((strncmp(a, "T38FaxTranscodingMMR", 20) == 0)) { found = 1; - if ((sscanf(a, "T38FaxTranscodingMMR:%d", &x) == 1)) { + if ((sscanf(a, "T38FaxTranscodingMMR:%30d", &x) == 1)) { if (option_debug > 2) ast_log(LOG_DEBUG, "Transcoding MMR: %d\n",x); if (x == 1) @@ -5644,7 +5644,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req) } } else if ((strncmp(a, "T38FaxTranscodingJBIG", 21) == 0)) { found = 1; - if ((sscanf(a, "T38FaxTranscodingJBIG:%d", &x) == 1)) { + if ((sscanf(a, "T38FaxTranscodingJBIG:%30d", &x) == 1)) { if (option_debug > 2) ast_log(LOG_DEBUG, "Transcoding JBIG: %d\n",x); if (x == 1) @@ -6326,7 +6326,7 @@ static int __transmit_response(struct sip_pvt *p, const char *msg, const struct struct sip_request resp; int seqno = 0; - if (reliable && (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1)) { + if (reliable && (sscanf(get_header(req, "CSeq"), "%30d ", &seqno) != 1)) { ast_log(LOG_WARNING, "Unable to determine sequence number from '%s'\n", get_header(req, "CSeq")); return -1; } @@ -6468,7 +6468,7 @@ static int transmit_response_with_auth(struct sip_pvt *p, const char *msg, const char tmp[512]; int seqno = 0; - if (reliable && (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1)) { + if (reliable && (sscanf(get_header(req, "CSeq"), "%30d ", &seqno) != 1)) { ast_log(LOG_WARNING, "Unable to determine sequence number from '%s'\n", get_header(req, "CSeq")); return -1; } @@ -6953,7 +6953,7 @@ static int transmit_response_with_t38_sdp(struct sip_pvt *p, char *msg, struct s struct sip_request resp; int seqno; - if (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1) { + if (sscanf(get_header(req, "CSeq"), "%30d ", &seqno) != 1) { ast_log(LOG_WARNING, "Unable to get seqno from '%s'\n", get_header(req, "CSeq")); return -1; } @@ -6991,7 +6991,7 @@ static int transmit_response_with_sdp(struct sip_pvt *p, const char *msg, const { struct sip_request resp; int seqno; - if (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1) { + if (sscanf(get_header(req, "CSeq"), "%30d ", &seqno) != 1) { ast_log(LOG_WARNING, "Unable to get seqno from '%s'\n", get_header(req, "CSeq")); return -1; } @@ -8422,7 +8422,7 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st if (expires) { /* XXX bug here, we overwrite the string */ expires = strsep((char **) &expires, ";"); /* trim ; and beyond */ - if (sscanf(expires + 9, "%d", &expiry) != 1) + if (sscanf(expires + 9, "%30d", &expiry) != 1) expiry = default_expiry; } else { /* Nothing has been specified */ @@ -12236,7 +12236,7 @@ static int func_header_read(struct ast_channel *chan, char *function, char *data if (!args.number) { number = 1; } else { - sscanf(args.number, "%d", &number); + sscanf(args.number, "%30d", &number); if (number < 1) number = 1; } @@ -13045,7 +13045,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str } tmptmp = strcasestr(contact, "expires="); if (tmptmp) { - if (sscanf(tmptmp + 8, "%d;", &expires) != 1) + if (sscanf(tmptmp + 8, "%30d;", &expires) != 1) expires = 0; } @@ -16118,7 +16118,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc ast_log(LOG_ERROR, "Missing Cseq. Dropping this SIP message, it's incomplete.\n"); error = 1; } - if (!error && sscanf(cseq, "%d%n", &seqno, &len) != 1) { + if (!error && sscanf(cseq, "%30d%n", &seqno, &len) != 1) { ast_log(LOG_ERROR, "No seqno in '%s'. Dropping incomplete message.\n", cmd); error = 1; } @@ -16143,7 +16143,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc if (ast_strlen_zero(e)) { return 0; } - if (sscanf(e, "%d %n", &respid, &len) != 1) { + if (sscanf(e, "%30d %n", &respid, &len) != 1) { ast_log(LOG_WARNING, "Invalid response: '%s'\n", e); return 0; } @@ -17659,7 +17659,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str if (realtime && !strcasecmp(v->name, "regseconds")) { ast_get_time_t(v->value, ®seconds, 0, NULL); } else if (realtime && !strcasecmp(v->name, "lastms")) { - sscanf(v->value, "%d", &peer->lastms); + sscanf(v->value, "%30d", &peer->lastms); } else if (realtime && !strcasecmp(v->name, "ipaddr") && !ast_strlen_zero(v->value) ) { inet_aton(v->value, &(peer->addr.sin_addr)); } else if (realtime && !strcasecmp(v->name, "name")) @@ -17814,17 +17814,17 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str } else if (!strcasecmp(v->name, "autoframing")) { peer->autoframing = ast_true(v->value); } else if (!strcasecmp(v->name, "rtptimeout")) { - if ((sscanf(v->value, "%d", &peer->rtptimeout) != 1) || (peer->rtptimeout < 0)) { + if ((sscanf(v->value, "%30d", &peer->rtptimeout) != 1) || (peer->rtptimeout < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP hold time at line %d. Using default.\n", v->value, v->lineno); peer->rtptimeout = global_rtptimeout; } } else if (!strcasecmp(v->name, "rtpholdtimeout")) { - if ((sscanf(v->value, "%d", &peer->rtpholdtimeout) != 1) || (peer->rtpholdtimeout < 0)) { + if ((sscanf(v->value, "%30d", &peer->rtpholdtimeout) != 1) || (peer->rtpholdtimeout < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP hold time at line %d. Using default.\n", v->value, v->lineno); peer->rtpholdtimeout = global_rtpholdtimeout; } } else if (!strcasecmp(v->name, "rtpkeepalive")) { - if ((sscanf(v->value, "%d", &peer->rtpkeepalive) != 1) || (peer->rtpkeepalive < 0)) { + if ((sscanf(v->value, "%30d", &peer->rtpkeepalive) != 1) || (peer->rtpkeepalive < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP keepalive time at line %d. Using default.\n", v->value, v->lineno); peer->rtpkeepalive = global_rtpkeepalive; } @@ -17843,7 +17843,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str peer->maxms = 0; } else if (!strcasecmp(v->value, "yes")) { peer->maxms = default_qualify ? default_qualify : DEFAULT_MAXMS; - } else if (sscanf(v->value, "%d", &peer->maxms) != 1) { + } else if (sscanf(v->value, "%30d", &peer->maxms) != 1) { ast_log(LOG_WARNING, "Qualification of peer '%s' should be 'yes', 'no', or a number of milliseconds at line %d of sip.conf\n", peer->name, v->lineno); peer->maxms = 0; } @@ -18111,24 +18111,24 @@ static int reload_config(enum channelreloadreason reason) } else if (!strcasecmp(v->name, "relaxdtmf")) { global_relaxdtmf = ast_true(v->value); } else if (!strcasecmp(v->name, "checkmwi")) { - if ((sscanf(v->value, "%d", &global_mwitime) != 1) || (global_mwitime < 0)) { + if ((sscanf(v->value, "%30d", &global_mwitime) != 1) || (global_mwitime < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid MWI time setting at line %d. Using default (10).\n", v->value, v->lineno); global_mwitime = DEFAULT_MWITIME; } } else if (!strcasecmp(v->name, "vmexten")) { ast_copy_string(default_vmexten, v->value, sizeof(default_vmexten)); } else if (!strcasecmp(v->name, "rtptimeout")) { - if ((sscanf(v->value, "%d", &global_rtptimeout) != 1) || (global_rtptimeout < 0)) { + if ((sscanf(v->value, "%30d", &global_rtptimeout) != 1) || (global_rtptimeout < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP hold time at line %d. Using default.\n", v->value, v->lineno); global_rtptimeout = 0; } } else if (!strcasecmp(v->name, "rtpholdtimeout")) { - if ((sscanf(v->value, "%d", &global_rtpholdtimeout) != 1) || (global_rtpholdtimeout < 0)) { + if ((sscanf(v->value, "%30d", &global_rtpholdtimeout) != 1) || (global_rtpholdtimeout < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP hold time at line %d. Using default.\n", v->value, v->lineno); global_rtpholdtimeout = 0; } } else if (!strcasecmp(v->name, "rtpkeepalive")) { - if ((sscanf(v->value, "%d", &global_rtpkeepalive) != 1) || (global_rtpkeepalive < 0)) { + if ((sscanf(v->value, "%30d", &global_rtpkeepalive) != 1) || (global_rtpkeepalive < 0)) { ast_log(LOG_WARNING, "'%s' is not a valid RTP keepalive time at line %d. Using default.\n", v->value, v->lineno); global_rtpkeepalive = 0; } @@ -18173,7 +18173,7 @@ static int reload_config(enum channelreloadreason reason) ast_log(LOG_WARNING, "Unable to locate host '%s'\n", v->value); } else if (!strcasecmp(v->name, "outboundproxyport")) { /* Port needs to be after IP */ - sscanf(v->value, "%d", &format); + sscanf(v->value, "%30d", &format); outboundproxyip.sin_port = htons(format); } else if (!strcasecmp(v->name, "autocreatepeer")) { autocreatepeer = ast_true(v->value); @@ -18234,7 +18234,7 @@ static int reload_config(enum channelreloadreason reason) memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip.sin_addr)); externexpire = time(NULL); } else if (!strcasecmp(v->name, "externrefresh")) { - if (sscanf(v->value, "%d", &externrefresh) != 1) { + if (sscanf(v->value, "%30d", &externrefresh) != 1) { ast_log(LOG_WARNING, "Invalid externrefresh value '%s', must be an integer >0 at line %d\n", v->value, v->lineno); externrefresh = 10; } @@ -18282,7 +18282,7 @@ static int reload_config(enum channelreloadreason reason) if (ast_str2tos(v->value, &global_tos_video)) ast_log(LOG_WARNING, "Invalid tos_video value at line %d, recommended value is 'af41'. See doc/ip-tos.txt.\n", v->lineno); } else if (!strcasecmp(v->name, "bindport")) { - if (sscanf(v->value, "%d", &ourport) == 1) { + if (sscanf(v->value, "%5d", &ourport) == 1) { bindaddr.sin_port = htons(ourport); } else { ast_log(LOG_WARNING, "Invalid port number '%s' at line %d of %s\n", v->value, v->lineno, config); @@ -18292,7 +18292,7 @@ static int reload_config(enum channelreloadreason reason) default_qualify = 0; } else if (!strcasecmp(v->value, "yes")) { default_qualify = DEFAULT_MAXMS; - } else if (sscanf(v->value, "%d", &default_qualify) != 1) { + } else if (sscanf(v->value, "%30d", &default_qualify) != 1) { ast_log(LOG_WARNING, "Qualification default should be 'yes', 'no', or a number of milliseconds at line %d of sip.conf\n", v->lineno); default_qualify = 0; } @@ -18909,7 +18909,7 @@ static int sip_sipredirect(struct sip_pvt *p, const char *dest) memset(lport, 0, sizeof(lport)); localtmp++; /* This is okey because lhost and lport are as big as tmp */ - sscanf(localtmp, "%[^<>:; ]:%[^<>:; ]", lhost, lport); + sscanf(localtmp, "%80[^<>:; ]:%80[^<>:; ]", lhost, lport); if (ast_strlen_zero(lhost)) { ast_log(LOG_ERROR, "Can't find the host address\n"); return 0; diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 983dbf847..3c511ca24 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -4756,7 +4756,7 @@ static int reload_config(void) } else if (!strcasecmp(v->name, "disallow")) { ast_parse_allow_disallow(&default_prefs, &default_capability, v->value, 0); } else if (!strcasecmp(v->name, "bindport") || !strcasecmp(v->name, "port")) { - if (sscanf(v->value, "%d", &ourport) == 1) { + if (sscanf(v->value, "%5d", &ourport) == 1) { bindaddr.sin_port = htons(ourport); } else { ast_log(LOG_WARNING, "Invalid bindport '%s' at line %d of %s\n", v->value, v->lineno, config); diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c index b6137a88b..b980cfea0 100644 --- a/channels/iax2-provision.c +++ b/channels/iax2-provision.c @@ -246,7 +246,7 @@ int iax_provision_version(unsigned int *version, const char *template, int force ast_mutex_lock(&provlock); ast_db_get("iax/provisioning/cache", template, tmp, sizeof(tmp)); - if (sscanf(tmp, "v%x", version) != 1) { + if (sscanf(tmp, "v%30x", version) != 1) { if (strcmp(tmp, "u")) { ret = iax_provision_build(&ied, version, template, force); if (ret) @@ -305,7 +305,7 @@ static int iax_template_parse(struct iax_template *cur, struct ast_config *cfg, v = ast_variable_browse(cfg, s); while(v) { if (!strcasecmp(v->name, "port") || !strcasecmp(v->name, "serverport")) { - if ((sscanf(v->value, "%d", &x) == 1) && (x > 0) && (x < 65535)) { + if ((sscanf(v->value, "%5d", &x) == 1) && (x > 0) && (x < 65535)) { if (!strcasecmp(v->name, "port")) { cur->port = x; foundportno = 1; diff --git a/channels/misdn_config.c b/channels/misdn_config.c index 71f54adcc..1cbd19021 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -891,9 +891,9 @@ static int _parse (union misdn_cfg_pt *dest, char *value, enum misdn_cfg_type ty { char *pat; if (strchr(value,'x')) - pat="%x"; + pat="%30x"; else - pat="%d"; + pat="%30d"; if (sscanf(value, pat, &tmp)) { dest->num = (int *)malloc(sizeof(int)); memcpy(dest->num, &tmp, sizeof(int)); @@ -907,7 +907,7 @@ static int _parse (union misdn_cfg_pt *dest, char *value, enum misdn_cfg_type ty break; case MISDN_CTYPE_BOOLINT: dest->num = (int *)malloc(sizeof(int)); - if (sscanf(value, "%d", &tmp)) { + if (sscanf(value, "%30d", &tmp)) { memcpy(dest->num, &tmp, sizeof(int)); } else { *(dest->num) = (ast_true(value) ? boolint_def : 0); @@ -974,7 +974,7 @@ static void _build_port_config (struct ast_variable *v, char *cat) for (token = strsep(&v->value, ","); token; token = strsep(&v->value, ","), *ptpbuf = 0) { if (!*token) continue; - if (sscanf(token, "%d-%d%s", &start, &end, ptpbuf) >= 2) { + if (sscanf(token, "%30d-%30d%s", &start, &end, ptpbuf) >= 2) { for (; start <= end; start++) { if (start <= max_ports && start > 0) { cfg_for_ports[start] = 1; @@ -983,7 +983,7 @@ static void _build_port_config (struct ast_variable *v, char *cat) CLI_ERROR(v->name, v->value, cat); } } else { - if (sscanf(token, "%d%s", &start, ptpbuf)) { + if (sscanf(token, "%30d%s", &start, ptpbuf)) { if (start <= max_ports && start > 0) { cfg_for_ports[start] = 1; ptp[start] = (strstr(ptpbuf, "ptp")) ? 1 : 0; |