dect
/
asterisk
Archived
13
0
Fork 0

AST-2009-005

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@211539 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
tilghman 2009-08-10 19:20:57 +00:00
parent 4548c33d84
commit d1ec1aa57d
101 changed files with 484 additions and 455 deletions

View File

@ -333,7 +333,7 @@ static int aMYSQL_connect(struct ast_channel *chan, char *data)
}
ctimeout = pbx_builtin_getvar_helper(chan, "MYSQL_TIMEOUT");
if (ctimeout && sscanf(ctimeout, "%d", &timeout) == 1) {
if (ctimeout && sscanf(ctimeout, "%30d", &timeout) == 1) {
mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (void *)&timeout);
}
@ -408,7 +408,7 @@ static int aMYSQL_nextresult(struct ast_channel *chan, char *data)
int connid = -1;
AST_NONSTANDARD_APP_ARGS(args, data, ' ');
sscanf(args.connid, "%d", &connid);
sscanf(args.connid, "%30d", &connid);
if (args.argc != 3 || connid <= 0) {
ast_log(LOG_WARNING, "missing some arguments\n");
@ -451,7 +451,7 @@ static int aMYSQL_fetch(struct ast_channel *chan, char *data)
parse = ast_strdupa(data);
AST_NONSTANDARD_APP_ARGS(args, parse, ' ');
sscanf(args.fetchid, "%d", &resultid);
sscanf(args.fetchid, "%30d", &resultid);
if (args.resultvar && (resultid >= 0) ) {
if ((mysqlres = find_identifier(resultid, AST_MYSQL_ID_RESID)) != NULL) {

View File

@ -107,7 +107,7 @@ static int sayword_exec(struct ast_channel *chan, const char *data)
return -1;
}
if (sscanf(args.num, "%d", &inum) != 1) {
if (sscanf(args.num, "%30d", &inum) != 1) {
ast_log(LOG_WARNING, "'%s' is not a valid number\n", args.num);
return -1;
}

View File

@ -383,7 +383,7 @@ static int my_load_config_number(struct ast_config *cfg, const char *category, c
tmp = ast_variable_retrieve(cfg, category, variable);
if (!tmp || sscanf(tmp, "%d", field) < 1)
if (!tmp || sscanf(tmp, "%30d", field) < 1)
*field = def;
return 0;

View File

@ -424,7 +424,7 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
/*
Possible data values - peername, exten/peername, exten@ip
*/
static struct ast_channel *ooh323_request(const char *type, int format,
static struct ast_channel *ooh323_request(const char *type, int format, const struct ast_channel *requestor,
void *data, int *cause)
{
struct ast_channel *chan = NULL;
@ -1886,7 +1886,7 @@ int reload_config(int reload)
if (gRTPTimeout <= 0)
gRTPTimeout = 60;
} else if (!strcasecmp(v->name, "tos")) {
if (sscanf(v->value, "%i", &format) == 1)
if (sscanf(v->value, "%30i", &format) == 1)
gTOS = format & 0xff;
else if (!strcasecmp(v->value, "lowdelay"))
gTOS = IPTOS_LOWDELAY;

View File

@ -245,7 +245,7 @@ static struct tables *find_table(const char *database, const char *tablename)
}
if ((flen = strchr(ftype, '('))) {
sscanf(flen, "(%d)", &column->len);
sscanf(flen, "(%30d)", &column->len);
} else {
/* Columns like dates, times, and timestamps don't have a length */
column->len = -1;

View File

@ -223,7 +223,7 @@ int main(int argc, char *argv[])
connect_sphinx();
tmp = getenv("agi_enhanced");
if (tmp) {
if (sscanf(tmp, "%d.%d", &ver, &subver) != 2)
if (sscanf(tmp, "%30d.%30d", &ver, &subver) != 2)
ver = 0;
}
if (ver < 1) {

View File

@ -156,7 +156,7 @@ int main(int argc, char *argv[])
}
tmp = getenv("agi_enhanced");
if (tmp) {
if (sscanf(tmp, "%d.%d", &ver, &subver) != 2)
if (sscanf(tmp, "%30d.%30d", &ver, &subver) != 2)
ver = 0;
}
if (ver < 1) {

View File

@ -201,7 +201,7 @@ static int process_token(void *out, char *src, int maxlen, int argtype)
if (!(argtype & ARG_NUMBER))
return -1;
/* Octal value */
if (sscanf(src, "%o", (int *)out) != 1)
if (sscanf(src, "%30o", (int *)out) != 1)
return -1;
if (argtype & ARG_STRING) {
/* Convert */
@ -211,7 +211,7 @@ static int process_token(void *out, char *src, int maxlen, int argtype)
if (!(argtype & ARG_NUMBER))
return -1;
/* Hex value */
if (sscanf(src + 2, "%x", (unsigned int *)out) != 1)
if (sscanf(src + 2, "%30x", (unsigned int *)out) != 1)
return -1;
if (argtype & ARG_STRING) {
/* Convert */
@ -221,7 +221,7 @@ static int process_token(void *out, char *src, int maxlen, int argtype)
if (!(argtype & ARG_NUMBER))
return -1;
/* Hex value */
if (sscanf(src, "%d", (int *)out) != 1)
if (sscanf(src, "%30d", (int *)out) != 1)
return -1;
if (argtype & ARG_STRING) {
/* Convert */

View File

@ -124,7 +124,7 @@ static void database_increment( char *key )
return;
}
sscanf(value, "%u", &v);
sscanf(value, "%30u", &v);
v++;
ast_verb(4, "AlarmReceiver: New value for %s: %u\n", key, v);

View File

@ -1037,7 +1037,7 @@ static int chanspy_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPTION_VOLUME) && opts[OPT_ARG_VOLUME]) {
int vol;
if ((sscanf(opts[OPT_ARG_VOLUME], "%d", &vol) != 1) || (vol > 4) || (vol < -4))
if ((sscanf(opts[OPT_ARG_VOLUME], "%30d", &vol) != 1) || (vol > 4) || (vol < -4))
ast_log(LOG_NOTICE, "Volume factor must be a number between -4 and 4\n");
else
volfactor = vol;
@ -1158,7 +1158,7 @@ static int extenspy_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPTION_VOLUME) && opts[OPT_ARG_VOLUME]) {
int vol;
if ((sscanf(opts[OPT_ARG_VOLUME], "%d", &vol) != 1) || (vol > 4) || (vol < -4))
if ((sscanf(opts[OPT_ARG_VOLUME], "%30d", &vol) != 1) || (vol > 4) || (vol < -4))
ast_log(LOG_NOTICE, "Volume factor must be a number between -4 and 4\n");
else
volfactor = vol;

View File

@ -267,8 +267,8 @@ static int conf_exec(struct ast_channel *chan, const char *data)
char confnostr[80] = "";
if (!ast_strlen_zero(data)) {
if ((sscanf(data, "DAHDI/%d", &confno) != 1) &&
(sscanf(data, "%d", &confno) != 1)) {
if ((sscanf(data, "DAHDI/%30d", &confno) != 1) &&
(sscanf(data, "%30d", &confno) != 1)) {
ast_log(LOG_WARNING, "DAHDIBarge Argument (if specified) must be a channel number, not '%s'\n", (char *)data);
return 0;
}
@ -282,7 +282,7 @@ static int conf_exec(struct ast_channel *chan, const char *data)
confnostr[0] = '\0';
res = ast_app_getdata(chan, "conf-getchannel",confnostr, sizeof(confnostr) - 1, 0);
if (res <0) goto out;
if (sscanf(confnostr, "%d", &confno) != 1)
if (sscanf(confnostr, "%30d", &confno) != 1)
confno = 0;
}
if (confno) {

View File

@ -250,7 +250,7 @@ static int disa_exec(struct ast_channel *chan, const char *data)
if (!(k&1)) { /* if in password state */
if (j == '#') { /* end of password */
/* see if this is an integer */
if (sscanf(args.passcode,"%d",&j) < 1) { /* nope, it must be a filename */
if (sscanf(args.passcode,"%30d",&j) < 1) { /* nope, it must be a filename */
fp = fopen(args.passcode,"r");
if (!fp) {
ast_log(LOG_WARNING,"DISA password file %s not found on chan %s\n",args.passcode,chan->name);
@ -276,7 +276,7 @@ static int disa_exec(struct ast_channel *chan, const char *data)
ast_debug(1, "Mailbox: %s\n",args.mailbox);
/* password must be in valid format (numeric) */
if (sscanf(args.passcode,"%d", &j) < 1)
if (sscanf(args.passcode,"%30d", &j) < 1)
continue;
/* if we got it */
if (!strcmp(exten,args.passcode)) {

View File

@ -334,7 +334,7 @@ static int reload_followme(int reload)
featuredigittostr = ast_variable_retrieve(cfg, "general", "featuredigittimeout");
if (!ast_strlen_zero(featuredigittostr)) {
if (!sscanf(featuredigittostr, "%d", &featuredigittimeout))
if (!sscanf(featuredigittostr, "%30d", &featuredigittimeout))
featuredigittimeout = 5000;
}
@ -956,7 +956,7 @@ static struct call_followme *find_realtime(const char *name)
if (!(numstr = ast_variable_retrieve(cfg, catg, "phonenumber"))) {
continue;
}
if (!(timeoutstr = ast_variable_retrieve(cfg, catg, "timeout")) || sscanf(timeoutstr, "%d", &timeout) != 1 || timeout < 1) {
if (!(timeoutstr = ast_variable_retrieve(cfg, catg, "timeout")) || sscanf(timeoutstr, "%30d", &timeout) != 1 || timeout < 1) {
timeout = 25;
}
/* This one has to exist; it was part of the query */

View File

@ -266,12 +266,12 @@ static int _macro_exec(struct ast_channel *chan, const char *data, int exclusive
/* does the user want a deeper rabbit hole? */
ast_channel_lock(chan);
if ((s = pbx_builtin_getvar_helper(chan, "MACRO_RECURSION"))) {
sscanf(s, "%d", &maxdepth);
sscanf(s, "%30d", &maxdepth);
}
/* Count how many levels deep the rabbit hole goes */
if ((s = pbx_builtin_getvar_helper(chan, "MACRO_DEPTH"))) {
sscanf(s, "%d", &depth);
sscanf(s, "%30d", &depth);
}
/* Used for detecting whether to return when a Macro is called from another Macro after hangup */
@ -279,7 +279,7 @@ static int _macro_exec(struct ast_channel *chan, const char *data, int exclusive
pbx_builtin_setvar_helper(chan, "MACRO_IN_HANGUP", "1");
if ((inhangupc = pbx_builtin_getvar_helper(chan, "MACRO_IN_HANGUP"))) {
sscanf(inhangupc, "%d", &inhangup);
sscanf(inhangupc, "%30d", &inhangup);
}
ast_channel_unlock(chan);
@ -543,7 +543,7 @@ static int _macro_exec(struct ast_channel *chan, const char *data, int exclusive
if ((offsets = pbx_builtin_getvar_helper(chan, "MACRO_OFFSET"))) {
/* Handle macro offset if it's set by checking the availability of step n + offset + 1, otherwise continue
normally if there is any problem */
if (sscanf(offsets, "%d", &offset) == 1) {
if (sscanf(offsets, "%30d", &offset) == 1) {
if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + offset + 1, chan->cid.cid_num)) {
chan->priority += offset;
}

View File

@ -1206,7 +1206,7 @@ static struct ast_conference *build_conf(const char *confno, const char *pin,
AST_LIST_INSERT_HEAD(&confs, cnf, list);
/* Reserve conference number in map */
if ((sscanf(cnf->confno, "%d", &confno_int) == 1) && (confno_int >= 0 && confno_int < 1024))
if ((sscanf(cnf->confno, "%30d", &confno_int) == 1) && (confno_int >= 0 && confno_int < 1024))
conf_map[confno_int] = 1;
cnfout:
@ -1874,7 +1874,7 @@ static int dispose_conf(struct ast_conference *conf)
AST_LIST_LOCK(&confs);
if (ast_atomic_dec_and_test(&conf->refcount)) {
/* Take the conference room number out of an inuse state */
if ((sscanf(conf->confno, "%d", &confno_int) == 1) && (confno_int >= 0 && confno_int < 1024)) {
if ((sscanf(conf->confno, "%4d", &confno_int) == 1) && (confno_int >= 0 && confno_int < 1024)) {
conf_map[confno_int] = 0;
}
conf_free(conf);
@ -2101,7 +2101,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
/* Possible timeout waiting for marked user */
if ((confflags & CONFFLAG_WAITMARKED) &&
!ast_strlen_zero(optargs[OPT_ARG_WAITMARKED]) &&
(sscanf(optargs[OPT_ARG_WAITMARKED], "%d", &opt_waitmarked_timeout) == 1) &&
(sscanf(optargs[OPT_ARG_WAITMARKED], "%30d", &opt_waitmarked_timeout) == 1) &&
(opt_waitmarked_timeout > 0)) {
timeout = time(NULL) + opt_waitmarked_timeout;
}
@ -3857,7 +3857,7 @@ static int conf_exec(struct ast_channel *chan, const char *data)
if (!res)
ast_waitstream(chan, "");
} else {
if (sscanf(confno, "%d", &confno_int) == 1) {
if (sscanf(confno, "%30d", &confno_int) == 1) {
if (!ast_test_flag(&confflags, CONFFLAG_QUIET)) {
res = ast_streamfile(chan, "conf-enteringno", chan->language);
if (!res) {
@ -3994,7 +3994,7 @@ static struct ast_conf_user *find_user(struct ast_conference *conf, const char *
struct ast_conf_user *user = NULL;
int cid;
sscanf(callerident, "%i", &cid);
sscanf(callerident, "%30i", &cid);
if (conf && callerident) {
AST_LIST_TRAVERSE(&conf->userlist, user, list) {
if (cid == user->user_no)
@ -4501,7 +4501,7 @@ static void load_config_meetme(void)
rt_log_members = 1;
if ((val = ast_variable_retrieve(cfg, "general", "audiobuffers"))) {
if ((sscanf(val, "%d", &audio_buffers) != 1)) {
if ((sscanf(val, "%30d", &audio_buffers) != 1)) {
ast_log(LOG_WARNING, "audiobuffers setting must be a number, not '%s'\n", val);
audio_buffers = DEFAULT_AUDIO_BUFFERS;
} else if ((audio_buffers < DAHDI_DEFAULT_NUM_BUFS) || (audio_buffers > DAHDI_MAX_NUM_BUFS)) {
@ -4518,25 +4518,25 @@ static void load_config_meetme(void)
if ((val = ast_variable_retrieve(cfg, "general", "logmembercount")))
rt_log_members = ast_true(val);
if ((val = ast_variable_retrieve(cfg, "general", "fuzzystart"))) {
if ((sscanf(val, "%d", &fuzzystart) != 1)) {
if ((sscanf(val, "%30d", &fuzzystart) != 1)) {
ast_log(LOG_WARNING, "fuzzystart must be a number, not '%s'\n", val);
fuzzystart = 0;
}
}
if ((val = ast_variable_retrieve(cfg, "general", "earlyalert"))) {
if ((sscanf(val, "%d", &earlyalert) != 1)) {
if ((sscanf(val, "%30d", &earlyalert) != 1)) {
ast_log(LOG_WARNING, "earlyalert must be a number, not '%s'\n", val);
earlyalert = 0;
}
}
if ((val = ast_variable_retrieve(cfg, "general", "endalert"))) {
if ((sscanf(val, "%d", &endalert) != 1)) {
if ((sscanf(val, "%30d", &endalert) != 1)) {
ast_log(LOG_WARNING, "endalert must be a number, not '%s'\n", val);
endalert = 0;
}
}
if ((val = ast_variable_retrieve(cfg, "general", "extendby"))) {
if ((sscanf(val, "%d", &extendby) != 1)) {
if ((sscanf(val, "%30d", &extendby) != 1)) {
ast_log(LOG_WARNING, "extendby must be a number, not '%s'\n", val);
extendby = 0;
}
@ -6102,7 +6102,7 @@ static int sla_build_trunk(struct ast_config *cfg, const char *cat)
if (!strcasecmp(var->name, "autocontext"))
ast_string_field_set(trunk, autocontext, var->value);
else if (!strcasecmp(var->name, "ringtimeout")) {
if (sscanf(var->value, "%u", &trunk->ring_timeout) != 1) {
if (sscanf(var->value, "%30u", &trunk->ring_timeout) != 1) {
ast_log(LOG_WARNING, "Invalid ringtimeout '%s' specified for trunk '%s'\n",
var->value, trunk->name);
trunk->ring_timeout = 0;
@ -6178,13 +6178,13 @@ static void sla_add_trunk_to_station(struct sla_station *station, struct ast_var
char *name, *value = cur;
name = strsep(&value, "=");
if (!strcasecmp(name, "ringtimeout")) {
if (sscanf(value, "%u", &trunk_ref->ring_timeout) != 1) {
if (sscanf(value, "%30u", &trunk_ref->ring_timeout) != 1) {
ast_log(LOG_WARNING, "Invalid ringtimeout value '%s' for "
"trunk '%s' on station '%s'\n", value, trunk->name, station->name);
trunk_ref->ring_timeout = 0;
}
} else if (!strcasecmp(name, "ringdelay")) {
if (sscanf(value, "%u", &trunk_ref->ring_delay) != 1) {
if (sscanf(value, "%30u", &trunk_ref->ring_delay) != 1) {
ast_log(LOG_WARNING, "Invalid ringdelay value '%s' for "
"trunk '%s' on station '%s'\n", value, trunk->name, station->name);
trunk_ref->ring_delay = 0;
@ -6233,13 +6233,13 @@ static int sla_build_station(struct ast_config *cfg, const char *cat)
else if (!strcasecmp(var->name, "autocontext"))
ast_string_field_set(station, autocontext, var->value);
else if (!strcasecmp(var->name, "ringtimeout")) {
if (sscanf(var->value, "%u", &station->ring_timeout) != 1) {
if (sscanf(var->value, "%30u", &station->ring_timeout) != 1) {
ast_log(LOG_WARNING, "Invalid ringtimeout '%s' specified for station '%s'\n",
var->value, station->name);
station->ring_timeout = 0;
}
} else if (!strcasecmp(var->name, "ringdelay")) {
if (sscanf(var->value, "%u", &station->ring_delay) != 1) {
if (sscanf(var->value, "%30u", &station->ring_delay) != 1) {
ast_log(LOG_WARNING, "Invalid ringdelay '%s' specified for station '%s'\n",
var->value, station->name);
station->ring_delay = 0;

View File

@ -2169,7 +2169,7 @@ static int minivm_record_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPT_RECORDGAIN)) {
int gain;
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%30d", &gain) != 1) {
ast_log(LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
return -1;
} else
@ -2596,7 +2596,7 @@ static int create_vmaccount(char *name, struct ast_variable *var, int realtime)
} else if (!strcasecmp(var->name, "pager")) {
ast_copy_string(vmu->pager, var->value, sizeof(vmu->pager));
} else if (!strcasecmp(var->name, "volgain")) {
sscanf(var->value, "%lf", &vmu->volgain);
sscanf(var->value, "%30lf", &vmu->volgain);
} else {
ast_log(LOG_ERROR, "Unknown configuration option for minivm account %s : %s\n", name, var->name);
}
@ -2766,7 +2766,7 @@ static int apply_general_options(struct ast_variable *var)
global_silencethreshold = atoi(var->value);
} else if (!strcmp(var->name, "maxmessage")) {
int x;
if (sscanf(var->value, "%d", &x) == 1) {
if (sscanf(var->value, "%30d", &x) == 1) {
global_vmmaxmessage = x;
} else {
error ++;
@ -2774,7 +2774,7 @@ static int apply_general_options(struct ast_variable *var)
}
} else if (!strcmp(var->name, "minmessage")) {
int x;
if (sscanf(var->value, "%d", &x) == 1) {
if (sscanf(var->value, "%30d", &x) == 1) {
global_vmminmessage = x;
if (global_maxsilence <= global_vmminmessage)
ast_log(LOG_WARNING, "maxsilence should be less than minmessage or you may get empty messages\n");

View File

@ -459,7 +459,7 @@ static int mixmonitor_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, MUXFLAG_READVOLUME)) {
if (ast_strlen_zero(opts[OPT_ARG_READVOLUME])) {
ast_log(LOG_WARNING, "No volume level was provided for the heard volume ('v') option.\n");
} else if ((sscanf(opts[OPT_ARG_READVOLUME], "%d", &x) != 1) || (x < -4) || (x > 4)) {
} else if ((sscanf(opts[OPT_ARG_READVOLUME], "%2d", &x) != 1) || (x < -4) || (x > 4)) {
ast_log(LOG_NOTICE, "Heard volume must be a number between -4 and 4, not '%s'\n", opts[OPT_ARG_READVOLUME]);
} else {
readvol = get_volfactor(x);
@ -469,7 +469,7 @@ static int mixmonitor_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, MUXFLAG_WRITEVOLUME)) {
if (ast_strlen_zero(opts[OPT_ARG_WRITEVOLUME])) {
ast_log(LOG_WARNING, "No volume level was provided for the spoken volume ('V') option.\n");
} else if ((sscanf(opts[OPT_ARG_WRITEVOLUME], "%d", &x) != 1) || (x < -4) || (x > 4)) {
} else if ((sscanf(opts[OPT_ARG_WRITEVOLUME], "%2d", &x) != 1) || (x < -4) || (x > 4)) {
ast_log(LOG_NOTICE, "Spoken volume must be a number between -4 and 4, not '%s'\n", opts[OPT_ARG_WRITEVOLUME]);
} else {
writevol = get_volfactor(x);
@ -479,7 +479,7 @@ static int mixmonitor_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, MUXFLAG_VOLUME)) {
if (ast_strlen_zero(opts[OPT_ARG_VOLUME])) {
ast_log(LOG_WARNING, "No volume level was provided for the combined volume ('W') option.\n");
} else if ((sscanf(opts[OPT_ARG_VOLUME], "%d", &x) != 1) || (x < -4) || (x > 4)) {
} else if ((sscanf(opts[OPT_ARG_VOLUME], "%2d", &x) != 1) || (x < -4) || (x > 4)) {
ast_log(LOG_NOTICE, "Combined volume must be a number between -4 and 4, not '%s'\n", opts[OPT_ARG_VOLUME]);
} else {
readvol = writevol = get_volfactor(x);

View File

@ -132,7 +132,7 @@ static int morsecode_exec(struct ast_channel *chan, const char *data)
/* Use variable MORESEDITLEN, if set (else 80) */
ast_channel_lock(chan);
ditlenc = pbx_builtin_getvar_helper(chan, "MORSEDITLEN");
if (ast_strlen_zero(ditlenc) || (sscanf(ditlenc, "%d", &ditlen) != 1)) {
if (ast_strlen_zero(ditlenc) || (sscanf(ditlenc, "%30d", &ditlen) != 1)) {
ditlen = 80;
}
ast_channel_unlock(chan);
@ -140,7 +140,7 @@ static int morsecode_exec(struct ast_channel *chan, const char *data)
/* Use variable MORSETONE, if set (else 800) */
ast_channel_lock(chan);
tonec = pbx_builtin_getvar_helper(chan, "MORSETONE");
if (ast_strlen_zero(tonec) || (sscanf(tonec, "%d", &tone) != 1)) {
if (ast_strlen_zero(tonec) || (sscanf(tonec, "%30d", &tone) != 1)) {
tone = 800;
}
ast_channel_unlock(chan);

View File

@ -136,7 +136,7 @@ static int originate_exec(struct ast_channel *chan, const char *data)
if (args.argc == 5) {
/* Context/Exten/Priority all specified */
if (sscanf(args.arg3, "%d", &priority) != 1) {
if (sscanf(args.arg3, "%30d", &priority) != 1) {
ast_log(LOG_ERROR, "Invalid priority: '%s'\n", args.arg3);
goto return_cleanup;
}

View File

@ -416,7 +416,7 @@ static int osp_create_provider(
ast_log(LOG_WARNING, "OSP: Too many Service Points at line %d\n", v->lineno);
}
} else if (!strcasecmp(v->name, "maxconnections")) {
if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_MAXCONNECTIONS) && (t <= OSP_MAX_MAXCONNECTIONS)) {
if ((sscanf(v->value, "%30d", &t) == 1) && (t >= OSP_MIN_MAXCONNECTIONS) && (t <= OSP_MAX_MAXCONNECTIONS)) {
p->maxconnections = t;
ast_debug(1, "OSP: maxconnections '%d'\n", t);
} else {
@ -424,7 +424,7 @@ static int osp_create_provider(
OSP_MIN_MAXCONNECTIONS, OSP_MAX_MAXCONNECTIONS, v->value, v->lineno);
}
} else if (!strcasecmp(v->name, "retrydelay")) {
if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_RETRYDELAY) && (t <= OSP_MAX_RETRYDELAY)) {
if ((sscanf(v->value, "%30d", &t) == 1) && (t >= OSP_MIN_RETRYDELAY) && (t <= OSP_MAX_RETRYDELAY)) {
p->retrydelay = t;
ast_debug(1, "OSP: retrydelay '%d'\n", t);
} else {
@ -432,7 +432,7 @@ static int osp_create_provider(
OSP_MIN_RETRYDELAY, OSP_MAX_RETRYDELAY, v->value, v->lineno);
}
} else if (!strcasecmp(v->name, "retrylimit")) {
if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_RETRYLIMIT) && (t <= OSP_MAX_RETRYLIMIT)) {
if ((sscanf(v->value, "%30d", &t) == 1) && (t >= OSP_MIN_RETRYLIMIT) && (t <= OSP_MAX_RETRYLIMIT)) {
p->retrylimit = t;
ast_debug(1, "OSP: retrylimit '%d'\n", t);
} else {
@ -440,7 +440,7 @@ static int osp_create_provider(
OSP_MIN_RETRYLIMIT, OSP_MAX_RETRYLIMIT, v->value, v->lineno);
}
} else if (!strcasecmp(v->name, "timeout")) {
if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_TIMEOUT) && (t <= OSP_MAX_TIMEOUT)) {
if ((sscanf(v->value, "%30d", &t) == 1) && (t >= OSP_MIN_TIMEOUT) && (t <= OSP_MAX_TIMEOUT)) {
p->timeout = t;
ast_debug(1, "OSP: timeout '%d'\n", t);
} else {
@ -451,7 +451,7 @@ static int osp_create_provider(
ast_copy_string(p->source, v->value, sizeof(p->source));
ast_debug(1, "OSP: source '%s'\n", p->source);
} else if (!strcasecmp(v->name, "authpolicy")) {
if ((sscanf(v->value, "%d", &t) == 1) && ((t == OSP_AUTH_NO) || (t == OSP_AUTH_YES) || (t == OSP_AUTH_EXCLUSIVE))) {
if ((sscanf(v->value, "%30d", &t) == 1) && ((t == OSP_AUTH_NO) || (t == OSP_AUTH_YES) || (t == OSP_AUTH_EXCLUSIVE))) {
p->authpolicy = t;
ast_debug(1, "OSP: authpolicy '%d'\n", t);
} else {
@ -1588,11 +1588,11 @@ static int osplookup_exec(
headp = &chan->varshead;
AST_LIST_TRAVERSE(headp, current, entries) {
if (!strcasecmp(ast_var_name(current), "OSPINHANDLE")) {
if (sscanf(ast_var_value(current), "%d", &result.inhandle) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.inhandle) != 1) {
result.inhandle = OSP_INVALID_HANDLE;
}
} else if (!strcasecmp(ast_var_name(current), "OSPINTIMELIMIT")) {
if (sscanf(ast_var_value(current), "%d", &result.intimelimit) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.intimelimit) != 1) {
result.intimelimit = OSP_DEF_TIMELIMIT;
}
} else if (!strcasecmp(ast_var_name(current), "OSPINNETWORKID")) {
@ -1734,7 +1734,7 @@ static int ospnext_exec(
AST_STANDARD_APP_ARGS(args, tmp);
if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%d", &cause) != 1) {
if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%30d", &cause) != 1) {
cause = 0;
}
ast_debug(1, "OSPNext: cause '%d'\n", cause);
@ -1752,23 +1752,23 @@ static int ospnext_exec(
headp = &chan->varshead;
AST_LIST_TRAVERSE(headp, current, entries) {
if (!strcasecmp(ast_var_name(current), "OSPINHANDLE")) {
if (sscanf(ast_var_value(current), "%d", &result.inhandle) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.inhandle) != 1) {
result.inhandle = OSP_INVALID_HANDLE;
}
} else if (!strcasecmp(ast_var_name(current), "OSPOUTHANDLE")) {
if (sscanf(ast_var_value(current), "%d", &result.outhandle) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.outhandle) != 1) {
result.outhandle = OSP_INVALID_HANDLE;
}
} else if (!strcasecmp(ast_var_name(current), "OSPINTIMELIMIT")) {
if (sscanf(ast_var_value(current), "%d", &result.intimelimit) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.intimelimit) != 1) {
result.intimelimit = OSP_DEF_TIMELIMIT;
}
} else if (!strcasecmp(ast_var_name(current), "OSPOUTCALLIDTYPES")) {
if (sscanf(ast_var_value(current), "%d", &callidtypes) != 1) {
if (sscanf(ast_var_value(current), "%30d", &callidtypes) != 1) {
callidtypes = OSP_CALLID_UNDEFINED;
}
} else if (!strcasecmp(ast_var_name(current), "OSPRESULTS")) {
if (sscanf(ast_var_value(current), "%d", &result.numresults) != 1) {
if (sscanf(ast_var_value(current), "%30d", &result.numresults) != 1) {
result.numresults = 0;
}
}
@ -1889,11 +1889,11 @@ static int ospfinished_exec(
headp = &chan->varshead;
AST_LIST_TRAVERSE(headp, current, entries) {
if (!strcasecmp(ast_var_name(current), "OSPINHANDLE")) {
if (sscanf(ast_var_value(current), "%d", &inhandle) != 1) {
if (sscanf(ast_var_value(current), "%30d", &inhandle) != 1) {
inhandle = OSP_INVALID_HANDLE;
}
} else if (!strcasecmp(ast_var_name(current), "OSPOUTHANDLE")) {
if (sscanf(ast_var_value(current), "%d", &outhandle) != 1) {
if (sscanf(ast_var_value(current), "%30d", &outhandle) != 1) {
outhandle = OSP_INVALID_HANDLE;
}
} else if (!recorded &&
@ -1910,7 +1910,7 @@ static int ospfinished_exec(
ast_debug(1, "OSPFinish: OSPOUTHANDLE '%d'\n", outhandle);
ast_debug(1, "OSPFinish: recorded '%d'\n", recorded);
if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%d", &cause) != 1) {
if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%30d", &cause) != 1) {
cause = 0;
}
ast_debug(1, "OSPFinish: cause '%d'\n", cause);
@ -2012,7 +2012,7 @@ static int osp_load(int reload)
t = ast_variable_retrieve(cfg, OSP_GENERAL_CAT, "tokenformat");
if (t) {
if ((sscanf(t, "%d", &v) == 1) &&
if ((sscanf(t, "%30d", &v) == 1) &&
((v == TOKEN_ALGO_SIGNED) || (v == TOKEN_ALGO_UNSIGNED) || (v == TOKEN_ALGO_BOTH)))
{
osp_tokenformat = v;

View File

@ -111,13 +111,13 @@ static int privacy_exec(struct ast_channel *chan, const char *data)
AST_STANDARD_APP_ARGS(args, parse);
if (args.maxretries) {
if (sscanf(args.maxretries, "%d", &x) == 1)
if (sscanf(args.maxretries, "%30d", &x) == 1)
maxretries = x;
else
ast_log(LOG_WARNING, "Invalid max retries argument\n");
}
if (args.minlength) {
if (sscanf(args.minlength, "%d", &x) == 1)
if (sscanf(args.minlength, "%30d", &x) == 1)
minlength = x;
else
ast_log(LOG_WARNING, "Invalid min length argument\n");

View File

@ -5155,7 +5155,7 @@ static int aqm_exec(struct ast_channel *chan, const char *data)
}
if (!ast_strlen_zero(args.penalty)) {
if ((sscanf(args.penalty, "%d", &penalty) != 1) || penalty < 0) {
if ((sscanf(args.penalty, "%30d", &penalty) != 1) || penalty < 0) {
ast_log(LOG_WARNING, "Penalty '%s' is invalid, must be an integer >= 0\n", args.penalty);
penalty = 0;
}
@ -5316,7 +5316,7 @@ static int queue_exec(struct ast_channel *chan, const char *data)
ast_channel_lock(chan);
user_priority = pbx_builtin_getvar_helper(chan, "QUEUE_PRIO");
if (user_priority) {
if (sscanf(user_priority, "%d", &prio) == 1) {
if (sscanf(user_priority, "%30d", &prio) == 1) {
ast_debug(1, "%s: Got priority %d from ${QUEUE_PRIO}.\n", chan->name, prio);
} else {
ast_log(LOG_WARNING, "${QUEUE_PRIO}: Invalid value (%s), channel %s.\n",
@ -5331,7 +5331,7 @@ static int queue_exec(struct ast_channel *chan, const char *data)
/* Get the maximum penalty from the variable ${QUEUE_MAX_PENALTY} */
if ((max_penalty_str = pbx_builtin_getvar_helper(chan, "QUEUE_MAX_PENALTY"))) {
if (sscanf(max_penalty_str, "%d", &max_penalty) == 1) {
if (sscanf(max_penalty_str, "%30d", &max_penalty) == 1) {
ast_debug(1, "%s: Got max penalty %d from ${QUEUE_MAX_PENALTY}.\n", chan->name, max_penalty);
} else {
ast_log(LOG_WARNING, "${QUEUE_MAX_PENALTY}: Invalid value (%s), channel %s.\n",
@ -5343,7 +5343,7 @@ static int queue_exec(struct ast_channel *chan, const char *data)
}
if ((min_penalty_str = pbx_builtin_getvar_helper(chan, "QUEUE_MIN_PENALTY"))) {
if (sscanf(min_penalty_str, "%d", &min_penalty) == 1) {
if (sscanf(min_penalty_str, "%30d", &min_penalty) == 1) {
ast_debug(1, "%s: Got min penalty %d from ${QUEUE_MIN_PENALTY}.\n", chan->name, min_penalty);
} else {
ast_log(LOG_WARNING, "${QUEUE_MIN_PENALTY}: Invalid value (%s), channel %s.\n",
@ -6712,7 +6712,7 @@ static int manager_add_queue_member(struct mansession *s, const struct message *
if (ast_strlen_zero(penalty_s))
penalty = 0;
else if (sscanf(penalty_s, "%d", &penalty) != 1 || penalty < 0)
else if (sscanf(penalty_s, "%30d", &penalty) != 1 || penalty < 0)
penalty = 0;
if (ast_strlen_zero(paused_s))
@ -6952,7 +6952,7 @@ static char *handle_queue_add_member(struct ast_cli_entry *e, int cmd, struct as
queuename = a->argv[5];
interface = a->argv[3];
if (a->argc >= 8) {
if (sscanf(a->argv[7], "%d", &penalty) == 1) {
if (sscanf(a->argv[7], "%30d", &penalty) == 1) {
if (penalty < 0) {
ast_cli(a->fd, "Penalty must be >= 0\n");
penalty = 0;

View File

@ -94,7 +94,7 @@ static int readfile_exec(struct ast_channel *chan, const char *data)
}
if (length) {
if ((sscanf(length, "%d", &len) != 1) || (len < 0)) {
if ((sscanf(length, "%30d", &len) != 1) || (len < 0)) {
ast_log(LOG_WARNING, "%s is not a positive number, defaulting length to max\n", length);
len = 0;
}

View File

@ -190,7 +190,7 @@ static int record_exec(struct ast_channel *chan, const char *data)
return -1;
}
if (args.silence) {
if ((sscanf(args.silence, "%d", &i) == 1) && (i > -1)) {
if ((sscanf(args.silence, "%30d", &i) == 1) && (i > -1)) {
silence = i * 1000;
} else if (!ast_strlen_zero(args.silence)) {
ast_log(LOG_WARNING, "'%s' is not a valid silence duration\n", args.silence);
@ -198,7 +198,7 @@ static int record_exec(struct ast_channel *chan, const char *data)
}
if (args.maxduration) {
if ((sscanf(args.maxduration, "%d", &i) == 1) && (i > -1))
if ((sscanf(args.maxduration, "%30d", &i) == 1) && (i > -1))
/* Convert duration to milliseconds */
maxduration = i * 1000;
else if (!ast_strlen_zero(args.maxduration))

View File

@ -2106,7 +2106,7 @@ static int myatoi(const char *str)
}
/* leave this %i alone, non-base-10 input is useful here */
if (sscanf(str, "%i", &ret) != 1) {
if (sscanf(str, "%30i", &ret) != 1) {
return -1;
}
@ -2333,7 +2333,7 @@ static char *cs_keywords[] = {"rptena","rptdis","apena","apdis","lnkena","lnkdis
/* do not use atoi() here, we need to be able to have
the input specified in hex or decimal so we use
sscanf with a %i */
if ((!val) || (sscanf(val,"%i",&rpt_vars[n].p.iobase) != 1))
if ((!val) || (sscanf(val,"%30i",&rpt_vars[n].p.iobase) != 1))
rpt_vars[n].p.iobase = DEFAULT_IOBASE;
val = (char *) ast_variable_retrieve(cfg,this,"ioport");
rpt_vars[n].p.ioport = val;
@ -3650,7 +3650,7 @@ static int send_tone_telemetry(struct ast_channel *chan, char *tonestring)
tonesubset = strsep(&stringp,")");
if(!tonesubset)
break;
if(sscanf(tonesubset,"(%d,%d,%d,%d", &f1, &f2, &duration, &amplitude) != 4)
if(sscanf(tonesubset,"(%30d,%30d,%30d,%30d", &f1, &f2, &duration, &amplitude) != 4)
break;
res = play_tone_pair(chan, f1, f2, duration, amplitude);
if(res)
@ -5072,7 +5072,7 @@ struct dahdi_params par;
p = strstr(tdesc, "version");
if(!p)
break;
if(sscanf(p, "version %d.%d", &vmajor, &vminor) != 2)
if(sscanf(p, "version %30d.%30d", &vmajor, &vminor) != 2)
break;
wait_interval(myrpt, DLY_TELEM, mychannel); /* Wait a little bit */
/* Say "version" */
@ -6680,6 +6680,8 @@ static int collect_function_digits(struct rpt *myrpt, char *digits,
static void handle_link_data(struct rpt *myrpt, struct rpt_link *mylink,
char *str)
{
/* XXX ATTENTION: if you change the size of these arrays you MUST
* change the limits in corresponding sscanf() calls below. */
char tmp[512],tmp1[512],cmd[300] = "",dest[300],src[300],c;
int i,seq, res, ts;
struct rpt_link *l;
@ -6718,7 +6720,7 @@ struct ast_frame wf;
}
if (tmp[0] == 'K')
{
if (sscanf(tmp,"%s %s %s %d %d",cmd,dest,src,&seq,&ts) != 5)
if (sscanf(tmp, "%299s %299s %299s %30d %30d", cmd, dest, src, &seq, &ts) != 5)
{
ast_log(LOG_WARNING, "Unable to parse keying string %s\n",str);
return;
@ -6826,7 +6828,9 @@ struct ast_frame wf;
}
if (tmp[0] == 'I')
{
if (sscanf(tmp,"%s %s %x",cmd,src,&seq) != 3)
/* XXX WARNING: be very careful with the limits on the folowing
* sscanf() call, make sure they match the values defined above */
if (sscanf(tmp,"%299s %299s %30x",cmd,src,&seq) != 3)
{
ast_log(LOG_WARNING, "Unable to parse ident string %s\n",str);
return;
@ -6836,7 +6840,9 @@ struct ast_frame wf;
}
else
{
if (sscanf(tmp,"%s %s %s %d %c",cmd,dest,src,&seq,&c) != 5)
/* XXX WARNING: be very careful with the limits on the folowing
* sscanf() call, make sure they match the values defined above */
if (sscanf(tmp,"%299s %299s %299s %30d %1c",cmd,dest,src,&seq,&c) != 5)
{
ast_log(LOG_WARNING, "Unable to parse link string %s\n",str);
return;
@ -10231,6 +10237,8 @@ int ret,res = 0,src;
static int handle_remote_data(struct rpt *myrpt, char *str)
{
/* XXX ATTENTION: if you change the size of these arrays you MUST
* change the limits in corresponding sscanf() calls below. */
char tmp[300],cmd[300],dest[300],src[300],c;
int seq,res;
@ -10246,7 +10254,9 @@ int seq,res;
#ifndef DO_NOT_NOTIFY_MDC1200_ON_REMOTE_BASES
if (tmp[0] == 'I')
{
if (sscanf(tmp,"%s %s %x",cmd,src,&seq) != 3)
/* XXX WARNING: be very careful with the limits on the folowing
* sscanf() call, make sure they match the values defined above */
if (sscanf(tmp,"%299s %299s %30x",cmd,src,&seq) != 3)
{
ast_log(LOG_WARNING, "Unable to parse ident string %s\n",str);
return 0;
@ -10255,7 +10265,9 @@ int seq,res;
return 0;
}
#endif
if (sscanf(tmp,"%s %s %s %d %c",cmd,dest,src,&seq,&c) != 5)
/* XXX WARNING: be very careful with the limits on the folowing
* sscanf() call, make sure they match the values defined above */
if (sscanf(tmp,"%299s %299s %299s %30d %1c",cmd,dest,src,&seq,&c) != 5)
{
ast_log(LOG_WARNING, "Unable to parse link string %s\n",str);
return 0;
@ -11886,7 +11898,7 @@ char tmpstr[300],lstr[MAXLINKLIST];
p = strstr(tdesc, "version");
if(p){
int vmajor,vminor;
if(sscanf(p, "version %d.%d", &vmajor, &vminor) == 2)
if(sscanf(p, "version %30d.%30d", &vmajor, &vminor) == 2)
sprintf(str + strlen(str),"&apprptvers=%d.%d",vmajor,vminor);
}
time(&now);

View File

@ -95,7 +95,7 @@ static int setcallerid_pres_exec(struct ast_channel *chan, const char *data)
}
/* For interface consistency, permit the argument to be specified as a number */
if (sscanf(data, "%d", &pres) != 1 || pres < 0 || pres > 255 || (pres & 0x9c)) {
if (sscanf(data, "%30d", &pres) != 1 || pres < 0 || pres > 255 || (pres & 0x9c)) {
pres = ast_parse_caller_presentation(data);
}

View File

@ -878,7 +878,7 @@ static void sms_readfile(sms_t * h, char *fn)
} else if (!strcmp(line, "scts")) { /* get date/time */
int Y, m, d, H, M, S;
/* XXX Why aren't we using ast_strptime here? */
if (sscanf(p, "%d-%d-%dT%d:%d:%d", &Y, &m, &d, &H, &M, &S) == 6) {
if (sscanf(p, "%4d-%2d-%2dT%2d:%2d:%2d", &Y, &m, &d, &H, &M, &S) == 6) {
struct ast_tm t = { 0, };
t.tm_year = Y - 1900;
t.tm_mon = m - 1;

View File

@ -570,7 +570,7 @@ static int handle_gosub(struct ast_channel *chan, AGI *agi, int argc, const char
ast_debug(1, "Gosub called with %d arguments: 0:%s 1:%s 2:%s 3:%s 4:%s\n", argc, argv[0], argv[1], argv[2], argv[3], argc == 5 ? argv[4] : "");
if (sscanf(argv[3], "%d", &priority) != 1 || priority < 1) {
if (sscanf(argv[3], "%30d", &priority) != 1 || priority < 1) {
/* Lookup the priority label */
if ((priority = ast_findlabel_extension(chan, argv[1], argv[2], argv[3], chan->cid.cid_num)) < 0) {
ast_log(LOG_ERROR, "Priority '%s' not found in '%s@%s'\n", argv[3], argv[2], argv[1]);

View File

@ -105,16 +105,16 @@ static int background_detect_exec(struct ast_channel *chan, const char *data)
tmp = ast_strdupa(data);
AST_STANDARD_APP_ARGS(args, tmp);
if (!ast_strlen_zero(args.silence) && (sscanf(args.silence, "%d", &x) == 1) && (x > 0)) {
if (!ast_strlen_zero(args.silence) && (sscanf(args.silence, "%30d", &x) == 1) && (x > 0)) {
sil = x;
}
if (!ast_strlen_zero(args.min) && (sscanf(args.min, "%d", &x) == 1) && (x > 0)) {
if (!ast_strlen_zero(args.min) && (sscanf(args.min, "%30d", &x) == 1) && (x > 0)) {
min = x;
}
if (!ast_strlen_zero(args.max) && (sscanf(args.max, "%d", &x) == 1) && (x > 0)) {
if (!ast_strlen_zero(args.max) && (sscanf(args.max, "%30d", &x) == 1) && (x > 0)) {
max = x;
}
if (!ast_strlen_zero(args.analysistime) && (sscanf(args.analysistime, "%d", &x) == 1) && (x > 0)) {
if (!ast_strlen_zero(args.analysistime) && (sscanf(args.analysistime, "%30d", &x) == 1) && (x > 0)) {
analysistime = x;
}

View File

@ -92,7 +92,7 @@ static int verbose_exec(struct ast_channel *chan, const char *data)
args.level = "0";
}
if (sscanf(args.level, "%d", &vsize) != 1) {
if (sscanf(args.level, "%30d", &vsize) != 1) {
vsize = 0;
ast_log(LOG_WARNING, "'%s' is not a verboser number\n", args.level);
}

View File

@ -926,7 +926,7 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
} else if (!strcasecmp(var, "sayduration")){
ast_set2_flag(vmu, ast_true(value), VM_SAYDURATION);
} else if (!strcasecmp(var, "saydurationm")){
if (sscanf(value, "%d", &x) == 1) {
if (sscanf(value, "%30d", &x) == 1) {
vmu->saydurationm = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid min duration for say duration\n");
@ -960,7 +960,7 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
vmu->maxmsg = MAXMSGLIMIT;
}
} else if (!strcasecmp(var, "backupdeleted")) {
if (sscanf(value, "%d", &x) == 1)
if (sscanf(value, "%30d", &x) == 1)
vmu->maxdeletedmsg = x;
else if (ast_true(value))
vmu->maxdeletedmsg = MAXMSG;
@ -975,7 +975,7 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
vmu->maxdeletedmsg = MAXMSGLIMIT;
}
} else if (!strcasecmp(var, "volgain")) {
sscanf(value, "%lf", &vmu->volgain);
sscanf(value, "%30lf", &vmu->volgain);
} else if (!strcasecmp(var, "options")) {
apply_options(vmu, value);
}
@ -3105,7 +3105,7 @@ static int last_message_index(struct ast_vm_user *vmu, char *dir)
ast_odbc_release_obj(obj);
goto yuck;
}
if (sscanf(rowdata, "%d", &x) != 1)
if (sscanf(rowdata, "%30d", &x) != 1)
ast_log(AST_LOG_WARNING, "Failed to read message count!\n");
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
@ -3160,7 +3160,7 @@ static int message_exists(char *dir, int msgnum)
ast_odbc_release_obj(obj);
goto yuck;
}
if (sscanf(rowdata, "%d", &x) != 1)
if (sscanf(rowdata, "%30d", &x) != 1)
ast_log(AST_LOG_WARNING, "Failed to read message count!\n");
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
@ -3578,7 +3578,7 @@ static int last_message_index(struct ast_vm_user *vmu, char *dir)
* find each file. */
msgdir = opendir(dir);
while ((msgdirent = readdir(msgdir))) {
if (sscanf(msgdirent->d_name, "msg%d", &msgdirint) == 1 && msgdirint < MAXMSGLIMIT)
if (sscanf(msgdirent->d_name, "msg%30d", &msgdirint) == 1 && msgdirint < MAXMSGLIMIT)
map[msgdirint] = 1;
}
closedir(msgdir);
@ -3903,7 +3903,7 @@ static void prep_email_sub_vars(struct ast_channel *ast, struct ast_vm_user *vmu
pbx_builtin_setvar_helper(ast, "ORIG_VM_CIDNUM", origcidnum);
}
if ((origtime = ast_variable_retrieve(msg_cfg, "message", "origtime")) && sscanf(origtime, "%d", &inttime) == 1) {
if ((origtime = ast_variable_retrieve(msg_cfg, "message", "origtime")) && sscanf(origtime, "%30d", &inttime) == 1) {
struct timeval tv = { inttime, };
struct ast_tm tm;
ast_localtime(&tv, &tm, NULL);
@ -4258,7 +4258,7 @@ static void make_email_file(FILE *p, char *srcemail, struct ast_vm_user *vmu, in
/* You might be tempted to do origdate, except that a) it's in the wrong
* format, and b) it's missing for IMAP recordings. */
if ((v = ast_variable_retrieve(msg_cfg, "message", "origtime")) && sscanf(v, "%d", &inttime) == 1) {
if ((v = ast_variable_retrieve(msg_cfg, "message", "origtime")) && sscanf(v, "%30d", &inttime) == 1) {
struct timeval tv = { inttime, };
struct ast_tm tm;
ast_localtime(&tv, &tm, NULL);
@ -9013,7 +9013,7 @@ static int vm_execmain(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPT_RECORDGAIN)) {
int gain;
if (!ast_strlen_zero(opts[OPT_ARG_RECORDGAIN])) {
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%30d", &gain) != 1) {
ast_log(AST_LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
return -1;
} else {
@ -9026,7 +9026,7 @@ static int vm_execmain(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPT_AUTOPLAY) ) {
play_auto = 1;
if (opts[OPT_ARG_PLAYFOLDER]) {
if (sscanf(opts[OPT_ARG_PLAYFOLDER], "%d", &play_folder) != 1) {
if (sscanf(opts[OPT_ARG_PLAYFOLDER], "%30d", &play_folder) != 1) {
ast_log(AST_LOG_WARNING, "Invalid value '%s' provided for folder autoplay option\n", opts[OPT_ARG_PLAYFOLDER]);
}
} else {
@ -9692,7 +9692,7 @@ static int vm_exec(struct ast_channel *chan, const char *data)
if (ast_test_flag(&flags, OPT_RECORDGAIN)) {
int gain;
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
if (sscanf(opts[OPT_ARG_RECORDGAIN], "%30d", &gain) != 1) {
ast_log(AST_LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
return -1;
} else {
@ -10529,7 +10529,7 @@ static int load_config(int reload)
volgain = 0.0;
if ((val = ast_variable_retrieve(cfg, "general", "volgain")))
sscanf(val, "%lf", &volgain);
sscanf(val, "%30lf", &volgain);
#ifdef ODBC_STORAGE
strcpy(odbc_database, "asterisk");
@ -10569,7 +10569,7 @@ static int load_config(int reload)
if (!(val = ast_variable_retrieve(cfg, "general", "backupdeleted"))) {
maxdeletedmsg = 0;
} else {
if (sscanf(val, "%d", &x) == 1)
if (sscanf(val, "%30d", &x) == 1)
maxdeletedmsg = x;
else if (ast_true(val))
maxdeletedmsg = MAXMSG;
@ -10721,7 +10721,7 @@ static int load_config(int reload)
vmmaxsecs = 0;
if ((val = ast_variable_retrieve(cfg, "general", "maxsecs"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
vmmaxsecs = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid max message time length\n");
@ -10732,7 +10732,7 @@ static int load_config(int reload)
maxmessage_deprecate = 1;
ast_log(AST_LOG_WARNING, "Setting 'maxmessage' has been deprecated in favor of 'maxsecs'.\n");
}
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
vmmaxsecs = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid max message time length\n");
@ -10741,7 +10741,7 @@ static int load_config(int reload)
vmminsecs = 0;
if ((val = ast_variable_retrieve(cfg, "general", "minsecs"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
vmminsecs = x;
if (maxsilence / 1000 >= vmminsecs) {
ast_log(AST_LOG_WARNING, "maxsilence should be less than minmessage or you may get empty messages\n");
@ -10755,7 +10755,7 @@ static int load_config(int reload)
maxmessage_deprecate = 1;
ast_log(AST_LOG_WARNING, "Setting 'minmessage' has been deprecated in favor of 'minsecs'.\n");
}
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
vmminsecs = x;
if (maxsilence / 1000 >= vmminsecs) {
ast_log(AST_LOG_WARNING, "maxsilence should be less than minmessage or you may get empty messages\n");
@ -10772,7 +10772,7 @@ static int load_config(int reload)
skipms = 3000;
if ((val = ast_variable_retrieve(cfg, "general", "maxgreet"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
maxgreet = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid max message greeting length\n");
@ -10780,7 +10780,7 @@ static int load_config(int reload)
}
if ((val = ast_variable_retrieve(cfg, "general", "skipms"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
skipms = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid skipms value\n");
@ -10789,7 +10789,7 @@ static int load_config(int reload)
maxlogins = 3;
if ((val = ast_variable_retrieve(cfg, "general", "maxlogins"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
maxlogins = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid max failed login attempts\n");
@ -10798,7 +10798,7 @@ static int load_config(int reload)
minpassword = MINPASSWORD;
if ((val = ast_variable_retrieve(cfg, "general", "minpassword"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
minpassword = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid minimum password length. Default to %d\n", minpassword);
@ -10894,7 +10894,7 @@ static int load_config(int reload)
saydurationminfo = 2;
if ((val = ast_variable_retrieve(cfg, "general", "saydurationm"))) {
if (sscanf(val, "%d", &x) == 1) {
if (sscanf(val, "%30d", &x) == 1) {
saydurationminfo = x;
} else {
ast_log(AST_LOG_WARNING, "Invalid min duration for say duration\n");
@ -10959,7 +10959,7 @@ static int load_config(int reload)
poll_freq = DEFAULT_POLL_FREQ;
if ((val = ast_variable_retrieve(cfg, "general", "pollfreq"))) {
if (sscanf(val, "%u", &poll_freq) != 1) {
if (sscanf(val, "%30u", &poll_freq) != 1) {
poll_freq = DEFAULT_POLL_FREQ;
ast_log(AST_LOG_ERROR, "'%s' is not a valid value for the pollfreq option!\n", val);
}

View File

@ -60,7 +60,7 @@ static int waitforring_exec(struct ast_channel *chan, const char *data)
double s;
int ms;
if (!data || (sscanf(data, "%lg", &s) != 1)) {
if (!data || (sscanf(data, "%30lg", &s) != 1)) {
ast_log(LOG_WARNING, "WaitForRing requires an argument (minimum seconds)\n");
return 0;
}

View File

@ -214,9 +214,9 @@ static int waitfor_exec(struct ast_channel *chan, const char *data, int wait_for
res = ast_answer(chan); /* Answer the channel */
}
if (!data || ( (sscanf(data, "%d,%d,%d", &timereqd, &iterations, &timeout) != 3) &&
(sscanf(data, "%d,%d", &timereqd, &iterations) != 2) &&
(sscanf(data, "%d", &timereqd) != 1) ) ) {
if (!data || ( (sscanf(data, "%30d,%30d,%30d", &timereqd, &iterations, &timeout) != 3) &&
(sscanf(data, "%30d,%30d", &timereqd, &iterations) != 2) &&
(sscanf(data, "%30d", &timereqd) != 1) ) ) {
ast_log(LOG_WARNING, "Using default value of 1000ms, 1 iteration, no timeout\n");
}

View File

@ -82,7 +82,7 @@ static int waituntil_exec(struct ast_channel *chan, const char *data)
return 0;
}
if (sscanf(data, "%ld%lf", &seconds, &fraction) == 0) {
if (sscanf(data, "%30ld%30lf", &seconds, &fraction) == 0) {
ast_log(LOG_WARNING, "WaitUntil called with non-numeric argument\n");
pbx_builtin_setvar_helper(chan, "WAITUNTILSTATUS", "FAILURE");
return 0;

View File

@ -460,7 +460,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_TYPE_DATE:
{
int year = 0, month = 0, day = 0;
if (sscanf(colptr, "%d-%d-%d", &year, &month, &day) != 3 || year <= 0 ||
if (sscanf(colptr, "%4d-%2d-%2d", &year, &month, &day) != 3 || year <= 0 ||
month <= 0 || month > 12 || day < 0 || day > 31 ||
((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) ||
(month == 2 && year % 400 == 0 && day > 29) ||
@ -483,7 +483,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_TYPE_TIME:
{
int hour = 0, minute = 0, second = 0;
int count = sscanf(colptr, "%d:%d:%d", &hour, &minute, &second);
int count = sscanf(colptr, "%2d:%2d:%2d", &hour, &minute, &second);
if ((count != 2 && count != 3) || hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
ast_log(LOG_WARNING, "CDR variable %s is not a valid time ('%s').\n", entry->name, colptr);
@ -499,7 +499,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_TIMESTAMP:
{
int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0;
int count = sscanf(colptr, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
int count = sscanf(colptr, "%4d-%2d-%2d %2d:%2d:%2d", &year, &month, &day, &hour, &minute, &second);
if ((count != 3 && count != 5 && count != 6) || year <= 0 ||
month <= 0 || month > 12 || day < 0 || day > 31 ||
@ -525,7 +525,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_INTEGER:
{
int integer = 0;
if (sscanf(colptr, "%d", &integer) != 1) {
if (sscanf(colptr, "%30d", &integer) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an integer.\n", entry->name);
continue;
}
@ -538,7 +538,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_BIGINT:
{
long long integer = 0;
if (sscanf(colptr, "%lld", &integer) != 1) {
if (sscanf(colptr, "%30lld", &integer) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an integer.\n", entry->name);
continue;
}
@ -551,7 +551,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_SMALLINT:
{
short integer = 0;
if (sscanf(colptr, "%hd", &integer) != 1) {
if (sscanf(colptr, "%30hd", &integer) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an integer.\n", entry->name);
continue;
}
@ -564,7 +564,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_TINYINT:
{
char integer = 0;
if (sscanf(colptr, "%hhd", &integer) != 1) {
if (sscanf(colptr, "%30hhd", &integer) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an integer.\n", entry->name);
continue;
}
@ -577,7 +577,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_BIT:
{
char integer = 0;
if (sscanf(colptr, "%hhd", &integer) != 1) {
if (sscanf(colptr, "%30hhd", &integer) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an integer.\n", entry->name);
continue;
}
@ -593,7 +593,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_DECIMAL:
{
double number = 0.0;
if (sscanf(colptr, "%lf", &number) != 1) {
if (sscanf(colptr, "%30lf", &number) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an numeric type.\n", entry->name);
continue;
}
@ -608,7 +608,7 @@ static int odbc_log(struct ast_cdr *cdr)
case SQL_DOUBLE:
{
double number = 0.0;
if (sscanf(colptr, "%lf", &number) != 1) {
if (sscanf(colptr, "%30lf", &number) != 1) {
ast_log(LOG_WARNING, "CDR variable %s is not an numeric type.\n", entry->name);
continue;
}

View File

@ -237,7 +237,7 @@ static int pgsql_log(struct ast_cdr *cdr)
ast_cdr_getvar(cdr, cur->name, &value, buf, sizeof(buf), 0, 0);
if (strncmp(cur->type, "int", 3) == 0) {
long long whatever;
if (value && sscanf(value, "%lld", &whatever) == 1) {
if (value && sscanf(value, "%30lld", &whatever) == 1) {
LENGTHEN_BUF2(26);
ast_str_append(&sql2, 0, "%s%lld", first ? "" : ",", whatever);
} else {
@ -246,7 +246,7 @@ static int pgsql_log(struct ast_cdr *cdr)
}
} else if (strncmp(cur->type, "float", 5) == 0) {
long double whatever;
if (value && sscanf(value, "%Lf", &whatever) == 1) {
if (value && sscanf(value, "%30Lf", &whatever) == 1) {
LENGTHEN_BUF2(51);
ast_str_append(&sql2, 0, "%s%30Lf", first ? "" : ",", whatever);
} else {
@ -501,7 +501,7 @@ static int config_module(int reload)
ast_verb(4, "Found column '%s' of type '%s'\n", fname, ftype);
cur = ast_calloc(1, sizeof(*cur) + strlen(fname) + strlen(ftype) + 2);
if (cur) {
sscanf(flen, "%d", &cur->len);
sscanf(flen, "%30d", &cur->len);
cur->name = (char *)cur + sizeof(*cur);
cur->type = (char *)cur + sizeof(*cur) + strlen(fname) + 1;
strcpy(cur->name, fname);

View File

@ -503,7 +503,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
case SQL_TYPE_DATE:
{
int year = 0, month = 0, day = 0;
if (sscanf(colptr, "%d-%d-%d", &year, &month, &day) != 3 || year <= 0 ||
if (sscanf(colptr, "%4d-%2d-%2d", &year, &month, &day) != 3 || year <= 0 ||
month <= 0 || month > 12 || day < 0 || day > 31 ||
((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) ||
(month == 2 && year % 400 == 0 && day > 29) ||
@ -526,7 +526,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
case SQL_TYPE_TIME:
{
int hour = 0, minute = 0, second = 0;
int count = sscanf(colptr, "%d:%d:%d", &hour, &minute, &second);
int count = sscanf(colptr, "%2d:%2d:%2d", &hour, &minute, &second);
if ((count != 2 && count != 3) || hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
ast_log(LOG_WARNING, "CEL variable %s is not a valid time ('%s').\n", entry->name, colptr);
@ -542,7 +542,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
case SQL_TIMESTAMP:
{
int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0;
int count = sscanf(colptr, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
int count = sscanf(colptr, "%4d-%2d-%2d %2d:%2d:%2d", &year, &month, &day, &hour, &minute, &second);
if ((count != 3 && count != 5 && count != 6) || year <= 0 ||
month <= 0 || month > 12 || day < 0 || day > 31 ||
@ -570,7 +570,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
int integer = 0;
if (strcasecmp(entry->name, "eventtype") == 0) {
integer = (int) record.event_type;
} else if (sscanf(colptr, "%d", &integer) != 1) {
} else if (sscanf(colptr, "%30d", &integer) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an integer.\n", entry->name);
continue;
}
@ -585,7 +585,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
long long integer = 0;
if (strcasecmp(entry->name, "eventtype") == 0) {
integer = (long long) record.event_type;
} else if (sscanf(colptr, "%lld", &integer) != 1) {
} else if (sscanf(colptr, "%30lld", &integer) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an integer.\n", entry->name);
continue;
}
@ -600,7 +600,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
short integer = 0;
if (strcasecmp(entry->name, "eventtype") == 0) {
integer = (short) record.event_type;
} else if (sscanf(colptr, "%hd", &integer) != 1) {
} else if (sscanf(colptr, "%30hd", &integer) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an integer.\n", entry->name);
continue;
}
@ -615,7 +615,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
char integer = 0;
if (strcasecmp(entry->name, "eventtype") == 0) {
integer = (char) record.event_type;
} else if (sscanf(colptr, "%hhd", &integer) != 1) {
} else if (sscanf(colptr, "%30hhd", &integer) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an integer.\n", entry->name);
continue;
}
@ -630,7 +630,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
char integer = 0;
if (strcasecmp(entry->name, "eventtype") == 0) {
integer = (char) record.event_type;
} else if (sscanf(colptr, "%hhd", &integer) != 1) {
} else if (sscanf(colptr, "%30hhd", &integer) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an integer.\n", entry->name);
continue;
}
@ -648,7 +648,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
double number = 0.0;
if (strcasecmp(entry->name, "eventtype") == 0) {
number = (double)record.event_type;
} else if (sscanf(colptr, "%lf", &number) != 1) {
} else if (sscanf(colptr, "%30lf", &number) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an numeric type.\n", entry->name);
continue;
}
@ -665,7 +665,7 @@ static void odbc_log(const struct ast_event *event, void *userdata)
double number = 0.0;
if (strcasecmp(entry->name, "eventtype") == 0) {
number = (double) record.event_type;
} else if (sscanf(colptr, "%lf", &number) != 1) {
} else if (sscanf(colptr, "%30lf", &number) != 1) {
ast_log(LOG_WARNING, "CEL variable %s is not an numeric type.\n", entry->name);
continue;
}

View File

@ -244,7 +244,7 @@ static void pgsql_log(const struct ast_event *event, void *userdata)
}
if (strncmp(cur->type, "int", 3) == 0) {
long long whatever;
if (value && sscanf(value, "%lld", &whatever) == 1) {
if (value && sscanf(value, "%30lld", &whatever) == 1) {
LENGTHEN_BUF2(26);
ast_str_append(&sql2, 0, "%s%lld", SEP, whatever);
} else {
@ -253,7 +253,7 @@ static void pgsql_log(const struct ast_event *event, void *userdata)
}
} else if (strncmp(cur->type, "float", 5) == 0) {
long double whatever;
if (value && sscanf(value, "%Lf", &whatever) == 1) {
if (value && sscanf(value, "%30Lf", &whatever) == 1) {
LENGTHEN_BUF2(51);
ast_str_append(&sql2, 0, "%s%30Lf", SEP, whatever);
} else {
@ -493,7 +493,7 @@ static int process_my_load_module(struct ast_config *cfg)
ast_verb(4, "Found column '%s' of type '%s'\n", fname, ftype);
cur = ast_calloc(1, sizeof(*cur) + strlen(fname) + strlen(ftype) + 2);
if (cur) {
sscanf(flen, "%d", &cur->len);
sscanf(flen, "%30d", &cur->len);
cur->name = (char *)cur + sizeof(*cur);
cur->type = (char *)cur + sizeof(*cur) + strlen(fname) + 1;
strcpy(cur->name, fname);

View File

@ -1346,9 +1346,9 @@ static struct ast_channel *agent_request(const char *type, int format, const str
struct timeval now;
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
@ -2174,9 +2174,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);
} else
groupmatch = 0;

View File

@ -4658,7 +4658,7 @@ static void destroy_all_channels(void)
snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, pl->span, x);
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
}
if (!why) {
/* SRVST persistence is not required */
@ -5658,7 +5658,7 @@ static int parse_buffers_policy(const char *parse, int *num_buffers, int *policy
int res;
char policy_str[21] = "";
if ((res = sscanf(parse, "%d,%20s", num_buffers, policy_str)) != 2) {
if ((res = sscanf(parse, "%30d,%20s", num_buffers, policy_str)) != 2) {
ast_log(LOG_WARNING, "Parsing buffer string '%s' failed.\n", parse);
return 1;
}
@ -10270,7 +10270,7 @@ static unsigned int parse_pointcode(const char *pcstring)
unsigned int code1, code2, code3;
int numvals;
numvals = sscanf(pcstring, "%d-%d-%d", &code1, &code2, &code3);
numvals = sscanf(pcstring, "%30d-%30d-%30d", &code1, &code2, &code3);
if (numvals == 1)
return code1;
if (numvals == 3)
@ -11274,7 +11274,7 @@ static struct ast_channel *dahdi_request(const char *type, int format, const str
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;
}
@ -11309,7 +11309,7 @@ static struct ast_channel *dahdi_request(const char *type, int format, const str
x = CHAN_PSEUDO;
channelmatch = x;
}
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 {
@ -12640,7 +12640,7 @@ static char *handle_pri_service_generic(struct ast_cli_entry *e, int cmd, struct
if (a->argc < 5 || a->argc > 6)
return CLI_SHOWUSAGE;
if ((c = strchr(a->argv[4], ':'))) {
if (sscanf(a->argv[4], "%d:%d", &trunkgroup, &channel) != 2)
if (sscanf(a->argv[4], "%30d:%30d", &trunkgroup, &channel) != 2)
return CLI_SHOWUSAGE;
if ((trunkgroup < 1) || (channel < 1))
return CLI_SHOWUSAGE;
@ -12685,7 +12685,7 @@ static char *handle_pri_service_generic(struct ast_cli_entry *e, int cmd, struct
why = -1;
snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, tmp->span, channel);
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
ast_db_del(db_chan_name, SRVST_DBKEY);
}
switch(changestatus) {
@ -14850,9 +14850,9 @@ static int build_channels(struct dahdi_chan_conf *conf, const char *value, int r
c = ast_strdupa(value);
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")) {
@ -14932,7 +14932,7 @@ static void process_echocancel(struct dahdi_chan_conf *confp, const char *data,
strcpy(confp->chan.echocancel.params[confp->chan.echocancel.head.param_count].name, param.name);
if (param.value) {
if (sscanf(param.value, "%d", &confp->chan.echocancel.params[confp->chan.echocancel.head.param_count].value) != 1) {
if (sscanf(param.value, "%30d", &confp->chan.echocancel.params[confp->chan.echocancel.head.param_count].value) != 1) {
ast_log(LOG_WARNING, "Invalid echocancel parameter value supplied at line %d: '%s'\n", line, param.value);
continue;
}
@ -15000,11 +15000,11 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
} else if (!strcasecmp(v->name, "dring3range")) {
confp->chan.drings.ringnum[2].range = atoi(v->value);
} else if (!strcasecmp(v->name, "dring1")) {
sscanf(v->value, "%d,%d,%d", &confp->chan.drings.ringnum[0].ring[0], &confp->chan.drings.ringnum[0].ring[1], &confp->chan.drings.ringnum[0].ring[2]);
sscanf(v->value, "%30d,%30d,%30d", &confp->chan.drings.ringnum[0].ring[0], &confp->chan.drings.ringnum[0].ring[1], &confp->chan.drings.ringnum[0].ring[2]);
} else if (!strcasecmp(v->name, "dring2")) {
sscanf(v->value,"%d,%d,%d", &confp->chan.drings.ringnum[1].ring[0], &confp->chan.drings.ringnum[1].ring[1], &confp->chan.drings.ringnum[1].ring[2]);
sscanf(v->value, "%30d,%30d,%30d", &confp->chan.drings.ringnum[1].ring[0], &confp->chan.drings.ringnum[1].ring[1], &confp->chan.drings.ringnum[1].ring[2]);
} else if (!strcasecmp(v->name, "dring3")) {
sscanf(v->value, "%d,%d,%d", &confp->chan.drings.ringnum[2].ring[0], &confp->chan.drings.ringnum[2].ring[1], &confp->chan.drings.ringnum[2].ring[2]);
sscanf(v->value, "%30d,%30d,%30d", &confp->chan.drings.ringnum[2].ring[0], &confp->chan.drings.ringnum[2].ring[1], &confp->chan.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")) {
@ -15061,7 +15061,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 at line %d.\n", v->lineno);
}
} else if (!strcasecmp(v->name, "callprogress")) {
@ -15081,7 +15081,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
} else if (!strcasecmp(v->name, "echocancel")) {
process_echocancel(confp, v->value, v->lineno);
} 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 {
@ -15165,19 +15165,19 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
confp->chan.mwimonitor_fsk = 1;
}
} else if (!strcasecmp(v->name, "cid_rxgain")) {
if (sscanf(v->value, "%f", &confp->chan.cid_rxgain) != 1) {
if (sscanf(v->value, "%30f", &confp->chan.cid_rxgain) != 1) {
ast_log(LOG_WARNING, "Invalid cid_rxgain: %s at line %d.\n", v->value, v->lineno);
}
} 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 at line %d.\n", v->value, v->lineno);
}
} 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 at line %d.\n", v->value, v->lineno);
}
} 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 at line %d.\n", v->value, v->lineno);
}
} else if (!strcasecmp(v->name, "callerid")) {
@ -15743,7 +15743,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) {

View File

@ -11072,18 +11072,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")) {
@ -11720,7 +11720,7 @@ static int set_config(char *config_file, int reload)
if (trunkmaxsize == 0)
trunkmaxsize = MAX_TRUNKDATA;
} 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

View File

@ -1866,7 +1866,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;
}
@ -1881,7 +1881,7 @@ static int process_sdp(struct mgcp_subchannel *sub, struct mgcp_request *req)
ast_rtp_codecs_payloads_clear(ast_rtp_instance_get_codecs(sub->rtp), 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);
@ -1897,7 +1897,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 %127[^/]/", &codec, mimeSubtype) != 2)
continue;
/* Note: should really look at the 'freq' and '#chans' params too */
ast_rtp_codecs_payloads_set_rtpmap_type(ast_rtp_instance_get_codecs(sub->rtp), sub->rtp, codec, "audio", mimeSubtype, 0);
@ -2030,7 +2030,7 @@ static int transmit_response(struct mgcp_subchannel *sub, char *msg, struct mgcp
mgr = ast_calloc(1, sizeof(*mgr) + resp.len + 1);
if (mgr) {
/* Store MGCP response in case we have to retransmit */
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);
@ -3259,7 +3259,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) {
@ -3317,7 +3317,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) {
@ -4142,7 +4142,7 @@ static int reload_config(int reload)
if (ast_str2cos(v->value, &qos.cos_audio))
ast_log(LOG_WARNING, "Invalid cos_audio value at line %d, refer to QoS documentation\n", v->lineno);
} else if (!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 port number '%s' at line %d of %s\n", v->value, v->lineno, config);

View File

@ -3979,7 +3979,7 @@ static char *handle_cli_misdn_show_config(struct ast_cli_entry *e, int cmd, stru
ok = 1;
}
return ok ? CLI_SUCCESS : CLI_SHOWUSAGE;
} else if (!sscanf(a->argv[3], "%d", &onlyport) || onlyport < 0) {
} else if (!sscanf(a->argv[3], "%5d", &onlyport) || onlyport < 0) {
ast_cli(a->fd, "Unknown option: %s\n", a->argv[3]);
return CLI_SHOWUSAGE;
}

View File

@ -1235,7 +1235,7 @@ static char *console_active(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
static void store_boost(struct chan_oss_pvt *o, const 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;
}

View File

@ -1259,7 +1259,7 @@ static int parse_gain_value(const char *gain_type, const 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);

View File

@ -2924,7 +2924,7 @@ static void *_sip_tcp_helper_thread(struct sip_pvt *pvt, struct ast_tcptls_sessi
copy_request(&reqcpy, &req);
parse_request(&reqcpy);
/* In order to know how much to read, we need the content-length header */
if (sscanf(get_header(&reqcpy, "Content-Length"), "%d", &cl)) {
if (sscanf(get_header(&reqcpy, "Content-Length"), "%30d", &cl)) {
while (cl > 0) {
ast_mutex_lock(&tcptls_session->lock);
if (!fread(buf, (cl < sizeof(buf)) ? cl : sizeof(buf), 1, tcptls_session->f)) {
@ -3754,7 +3754,7 @@ static enum sip_result __sip_reliable_xmit(struct sip_pvt *p, int seqno, int res
p->packets = pkt; /* Add it to the queue */
if (resp) {
/* Parse out the response code */
if (sscanf(ast_str_buffer(pkt->data), "SIP/2.0 %d", &respid) == 1) {
if (sscanf(ast_str_buffer(pkt->data), "SIP/2.0 %30d", &respid) == 1) {
pkt->response_code = respid;
}
}
@ -3805,10 +3805,10 @@ static int __sip_autodestruct(const void *data)
/* If there are packets still waiting for delivery, delay the destruction */
if (p->packets) {
if (!p->needdestroy) {
char method_str[30];
char method_str[31];
ast_debug(3, "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)) {
pvt_set_needdestroy(p, "autodestruct");
}
@ -5215,7 +5215,7 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer, struct sockadd
/* This address should be updated using dnsmgr */
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 = (dialog->socket.type & SIP_TRANSPORT_TLS) ?
STANDARD_TLS_PORT : STANDARD_SIP_PORT;
}
@ -7771,7 +7771,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;
}
@ -7876,10 +7876,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.
@ -8016,7 +8016,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_log(LOG_WARNING, "SDP syntax error in o= line\n");
return -1;
}
if (!sscanf(token, "%" SCNd64, &rua_version)) {
if (!sscanf(token, "%30" SCNd64, &rua_version)) {
ast_log(LOG_WARNING, "SDP syntax error in o= line version\n");
return -1;
}
@ -8102,8 +8102,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
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;
p->offered_media[SDP_AUDIO].offered = TRUE;
numberofmediastreams++;
@ -8113,7 +8113,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
codecs = m + len;
ast_copy_string(p->offered_media[SDP_AUDIO].text, codecs, sizeof(p->offered_media[SDP_AUDIO].text));
for (; !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;
}
@ -8122,8 +8122,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_rtp_codecs_payloads_set_m_type(&newaudiortp, NULL, 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)) {
video = TRUE;
p->novideo = FALSE;
p->offered_media[SDP_VIDEO].offered = TRUE;
@ -8133,7 +8133,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
codecs = m + len;
ast_copy_string(p->offered_media[SDP_VIDEO].text, codecs, sizeof(p->offered_media[SDP_VIDEO].text));
for (; !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;
}
@ -8141,8 +8141,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_verbose("Found RTP video format %d\n", codec);
ast_rtp_codecs_payloads_set_m_type(&newvideortp, NULL, codec);
}
} else if ((sscanf(m, "text %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) ||
(sscanf(m, "text %d RTP/AVP %n", &x, &len) == 1 && len > 0)) {
} else if ((sscanf(m, "text %30d/%30d RTP/AVP %n", &x, &numberofports, &len) == 2 && len > 0) ||
(sscanf(m, "text %30d RTP/AVP %n", &x, &len) == 1 && len > 0)) {
text = TRUE;
p->offered_media[SDP_TEXT].offered = TRUE;
p->notext = FALSE;
@ -8152,7 +8152,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
codecs = m + len;
ast_copy_string(p->offered_media[SDP_TEXT].text, codecs, sizeof(p->offered_media[SDP_TEXT].text));
for (; !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;
}
@ -8160,8 +8160,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_verbose("Found RTP text format %d\n", codec);
ast_rtp_codecs_payloads_set_m_type(&newtextrtp, NULL, 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);
p->offered_media[SDP_IMAGE].offered = TRUE;
@ -8358,17 +8358,17 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
red_cp = &red_fmtp[strlen(red_fmtp)];
strncpy(red_fmtp, a, 100);
sscanf(red_cp, "%u", &red_data_pt[red_num_gen]);
sscanf(red_cp, "%30u", &red_data_pt[red_num_gen]);
red_cp = strtok(red_cp, "/");
while (red_cp && red_num_gen++ < AST_RED_MAX_GENERATION) {
sscanf(red_cp, "%u", &red_data_pt[red_num_gen]);
sscanf(red_cp, "%30u", &red_data_pt[red_num_gen]);
red_cp = strtok(NULL, "/");
}
red_cp = red_fmtp;
continue;
}
if (sscanf(a, "fmtp: %u %63s", &codec, fmtp_string) == 2) {
if (sscanf(a, "fmtp: %30u %63s", &codec, fmtp_string) == 2) {
struct ast_rtp_payload_type payload;
unsigned int handled = 0;
@ -8382,7 +8382,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
switch (payload.code) {
case AST_FORMAT_SIREN7:
if (sscanf(fmtp_string, "bitrate=%u", &bit_rate) == 1) {
if (sscanf(fmtp_string, "bitrate=%30u", &bit_rate) == 1) {
if (bit_rate != 32000) {
ast_log(LOG_WARNING, "Got Siren7 offer at %d bps, but only 32000 bps supported; ignoring.\n", bit_rate);
ast_rtp_codecs_payloads_unset(&newaudiortp, NULL, codec);
@ -8392,7 +8392,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
}
break;
case AST_FORMAT_SIREN14:
if (sscanf(fmtp_string, "bitrate=%u", &bit_rate) == 1) {
if (sscanf(fmtp_string, "bitrate=%30u", &bit_rate) == 1) {
if (bit_rate != 48000) {
ast_log(LOG_WARNING, "Got Siren14 offer at %d bps, but only 48000 bps supported; ignoring.\n", bit_rate);
ast_rtp_codecs_payloads_unset(&newaudiortp, NULL, codec);
@ -8410,7 +8410,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
continue;
}
if (sscanf(a, "rtpmap: %u %127[^/]/%u", &codec, mimeSubtype, &sample_rate) == 3) {
if (sscanf(a, "rtpmap: %30u %127[^/]/%30u", &codec, mimeSubtype, &sample_rate) == 3) {
/* We have a rtpmap to handle */
if (last_rtpmap_codec < SDP_MAX_RTPMAP_CODECS) {
@ -8472,10 +8472,10 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
/* 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;
ast_debug(3, "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;
ast_debug(3, "T38MaxBitRate: %d\n", x);
switch (x) {
@ -8498,17 +8498,17 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
p->t38.their_parms.rate = AST_T38_RATE_2400;
break;
}
} else if ((sscanf(a, "T38FaxVersion:%d", &x) == 1)) {
} else if ((sscanf(a, "T38FaxVersion:%30d", &x) == 1)) {
found = 1;
ast_debug(3, "FaxVersion: %d\n", x);
p->t38.their_parms.version = x;
} 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;
ast_debug(3, "FaxMaxDatagram: %d\n", x);
ast_udptl_set_far_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) {
ast_debug(3, "FillBitRemoval: %d\n", x);
if (x == 1) {
p->t38.their_parms.fill_bit_removal = TRUE;
@ -8519,7 +8519,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
}
} else if ((strncmp(a, "T38FaxTranscodingMMR", 20) == 0)) {
found = 1;
if (sscanf(a, "T38FaxTranscodingMMR:%d", &x) == 1) {
if (sscanf(a, "T38FaxTranscodingMMR:%30d", &x) == 1) {
ast_debug(3, "Transcoding MMR: %d\n", x);
if (x == 1) {
p->t38.their_parms.transcoding_mmr = TRUE;
@ -8530,7 +8530,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
}
} else if ((strncmp(a, "T38FaxTranscodingJBIG", 21) == 0)) {
found = 1;
if (sscanf(a, "T38FaxTranscodingJBIG:%d", &x) == 1) {
if (sscanf(a, "T38FaxTranscodingJBIG:%30d", &x) == 1) {
ast_debug(3, "Transcoding JBIG: %d\n", x);
if (x == 1) {
p->t38.their_parms.transcoding_jbig = TRUE;
@ -9297,7 +9297,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;
}
@ -9473,7 +9473,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;
}
@ -10185,7 +10185,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;
}
@ -10230,7 +10230,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;
}
@ -12103,7 +12103,7 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st
char *s = strcasestr(contact, ";expires=");
if (s) {
expires = strsep(&s, ";"); /* trim ; and beyond */
if (sscanf(expires + 9, "%d", &expire) != 1)
if (sscanf(expires + 9, "%30d", &expire) != 1)
expire = default_expiry;
} else {
/* Nothing has been specified */
@ -17149,7 +17149,7 @@ static int func_header_read(struct ast_channel *chan, const char *function, char
if (!args.number) {
number = 1;
} else {
sscanf(args.number, "%d", &number);
sscanf(args.number, "%30d", &number);
if (number < 1)
number = 1;
}
@ -18331,7 +18331,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, const char *res
}
tmptmp = strcasestr(contact, "expires=");
if (tmptmp) {
if (sscanf(tmptmp + 8, "%d;", &expires) != 1)
if (sscanf(tmptmp + 8, "%30d;", &expires) != 1)
expires = 0;
}
@ -21832,7 +21832,7 @@ static int handle_incoming(struct sip_pvt *p, struct sip_request *req, struct so
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;
}
@ -21863,7 +21863,7 @@ static int handle_incoming(struct sip_pvt *p, struct sip_request *req, struct so
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;
}
@ -22427,7 +22427,7 @@ static int sip_parse_host(char *line, int lineno, char **hostname, int *portnum,
if ((port = strrchr(line, ':'))) {
*port++ = '\0';
if (!sscanf(port, "%u", portnum)) {
if (!sscanf(port, "%5u", portnum)) {
ast_log(LOG_NOTICE, "'%s' is not a valid port number on line %d of sip.conf. using default.\n", port, lineno);
port = NULL;
}
@ -22831,7 +22831,7 @@ int parse_minse (const char *p_hdrval, int *const p_interval)
*p_interval = 0;
p_hdrval = ast_skip_blanks(p_hdrval);
if (!sscanf(p_hdrval, "%d", p_interval)) {
if (!sscanf(p_hdrval, "%30d", p_interval)) {
ast_log(LOG_WARNING, "Parsing of Min-SE header failed %s\n", p_hdrval);
return -1;
}
@ -22861,7 +22861,7 @@ int parse_session_expires(const char *p_hdrval, int *const p_interval, enum st_r
while ((p_token = strsep(&p_se_hdr, ";"))) {
p_token = ast_skip_blanks(p_token);
if (!sscanf(p_token, "%d", p_interval)) {
if (!sscanf(p_token, "%30d", p_interval)) {
ast_log(LOG_WARNING, "Parsing of Session-Expires failed\n");
return -1;
}
@ -23957,7 +23957,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
} else if (realtime && !strcasecmp(v->name, "regseconds")) {
ast_get_time_t(v->value, &regseconds, 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"))
@ -24160,22 +24160,22 @@ 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;
}
} else if (!strcasecmp(v->name, "timert1")) {
if ((sscanf(v->value, "%d", &peer->timer_t1) != 1) || (peer->timer_t1 < 0)) {
if ((sscanf(v->value, "%30d", &peer->timer_t1) != 1) || (peer->timer_t1 < 0)) {
ast_log(LOG_WARNING, "'%s' is not a valid T1 time at line %d. Using default.\n", v->value, v->lineno);
peer->timer_t1 = global_t1;
}
@ -24185,7 +24185,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
peer->timer_b = peer->timer_t1 * 64;
}
} else if (!strcasecmp(v->name, "timerb")) {
if ((sscanf(v->value, "%d", &peer->timer_b) != 1) || (peer->timer_b < 0)) {
if ((sscanf(v->value, "%30d", &peer->timer_b) != 1) || (peer->timer_b < 0)) {
ast_log(LOG_WARNING, "'%s' is not a valid Timer B time at line %d. Using default.\n", v->value, v->lineno);
peer->timer_b = global_timer_b;
}
@ -24206,7 +24206,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;
}
@ -24220,7 +24220,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
}
} else if (!strcasecmp(v->name, "qualifyfreq")) {
int i;
if (sscanf(v->value, "%d", &i) == 1)
if (sscanf(v->value, "%30d", &i) == 1)
peer->qualifyfreq = i * 1000;
else {
ast_log(LOG_WARNING, "Invalid qualifyfreq number '%s' at line %d of %s\n", v->value, v->lineno, config);
@ -24239,12 +24239,12 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
peer->stimer.st_mode_oper = i;
}
} else if (!strcasecmp(v->name, "session-expires")) {
if (sscanf(v->value, "%d", &peer->stimer.st_max_se) != 1) {
if (sscanf(v->value, "%30d", &peer->stimer.st_max_se) != 1) {
ast_log(LOG_WARNING, "Invalid session-expires '%s' at line %d of %s\n", v->value, v->lineno, config);
peer->stimer.st_max_se = global_max_se;
}
} else if (!strcasecmp(v->name, "session-minse")) {
if (sscanf(v->value, "%d", &peer->stimer.st_min_se) != 1) {
if (sscanf(v->value, "%30d", &peer->stimer.st_min_se) != 1) {
ast_log(LOG_WARNING, "Invalid session-minse '%s' at line %d of %s\n", v->value, v->lineno, config);
peer->stimer.st_min_se = global_min_se;
}
@ -24728,17 +24728,17 @@ static int reload_config(enum channelreloadreason reason)
} 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 = DEFAULT_RTPKEEPALIVE;
}
@ -24886,7 +24886,7 @@ static int reload_config(enum channelreloadreason reason)
if (!externip.sin_port)
externip.sin_port = bindaddr.sin_port;
} 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;
}
@ -24950,28 +24950,28 @@ static int reload_config(enum channelreloadreason reason)
ast_log(LOG_WARNING, "Invalid cos_text value at line %d, refer to QoS documentation\n", v->lineno);
} else if (!strcasecmp(v->name, "bindport")) {
int i;
if (sscanf(v->value, "%d", &i) == 1) {
if (sscanf(v->value, "%5d", &i) == 1) {
bindaddr.sin_port = htons(i);
} else {
ast_log(LOG_WARNING, "Invalid port number '%s' at line %d of %s\n", v->value, v->lineno, config);
}
} else if (!strcasecmp(v->name, "hash_user")) {
int i;
if (sscanf(v->value, "%d", &i) == 1 && i > 2) {
if (sscanf(v->value, "%30d", &i) == 1 && i > 2) {
hash_user_size = i;
} else {
ast_log(LOG_WARNING, "Invalid hash_user size '%s' at line %d of %s -- should be much larger than 2\n", v->value, v->lineno, config);
}
} else if (!strcasecmp(v->name, "hash_peer")) {
int i;
if (sscanf(v->value, "%d", &i) == 1 && i > 2) {
if (sscanf(v->value, "%30d", &i) == 1 && i > 2) {
hash_peer_size = i;
} else {
ast_log(LOG_WARNING, "Invalid hash_peer size '%s' at line %d of %s -- should be much larger than 2\n", v->value, v->lineno, config);
}
} else if (!strcasecmp(v->name, "hash_dialog")) {
int i;
if (sscanf(v->value, "%d", &i) == 1 && i > 2) {
if (sscanf(v->value, "%30d", &i) == 1 && i > 2) {
hash_dialog_size = i;
} else {
ast_log(LOG_WARNING, "Invalid hash_dialog size '%s' at line %d of %s -- should be much larger than 2\n", v->value, v->lineno, config);
@ -24981,13 +24981,13 @@ 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;
}
} else if (!strcasecmp(v->name, "qualifyfreq")) {
int i;
if (sscanf(v->value, "%d", &i) == 1)
if (sscanf(v->value, "%30d", &i) == 1)
global_qualifyfreq = i * 1000;
else {
ast_log(LOG_WARNING, "Invalid qualifyfreq number '%s' at line %d of %s\n", v->value, v->lineno, config);
@ -25012,12 +25012,12 @@ static int reload_config(enum channelreloadreason reason)
global_st_mode = i;
}
} else if (!strcasecmp(v->name, "session-expires")) {
if (sscanf(v->value, "%d", &global_max_se) != 1) {
if (sscanf(v->value, "%30d", &global_max_se) != 1) {
ast_log(LOG_WARNING, "Invalid session-expires '%s' at line %d of %s\n", v->value, v->lineno, config);
global_max_se = DEFAULT_MAX_SE;
}
} else if (!strcasecmp(v->name, "session-minse")) {
if (sscanf(v->value, "%d", &global_min_se) != 1) {
if (sscanf(v->value, "%30d", &global_min_se) != 1) {
ast_log(LOG_WARNING, "Invalid session-minse '%s' at line %d of %s\n", v->value, v->lineno, config);
global_min_se = DEFAULT_MIN_SE;
}
@ -25034,12 +25034,12 @@ static int reload_config(enum channelreloadreason reason)
global_st_refresher = i;
}
} else if (!strcasecmp(v->name, "qualifygap")) {
if (sscanf(v->value, "%d", &global_qualify_gap) != 1) {
if (sscanf(v->value, "%30d", &global_qualify_gap) != 1) {
ast_log(LOG_WARNING, "Invalid qualifygap '%s' at line %d of %s\n", v->value, v->lineno, config);
global_qualify_gap = DEFAULT_QUALIFY_GAP;
}
} else if (!strcasecmp(v->name, "qualifypeers")) {
if (sscanf(v->value, "%d", &global_qualify_peers) != 1) {
if (sscanf(v->value, "%30d", &global_qualify_peers) != 1) {
ast_log(LOG_WARNING, "Invalid pokepeers '%s' at line %d of %s\n", v->value, v->lineno, config);
global_qualify_peers = DEFAULT_QUALIFY_PEERS;
}
@ -25663,7 +25663,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;

View File

@ -6689,7 +6689,7 @@ static struct ast_channel *skinny_request(const char *type, int format, const st
ast_log(LOG_WARNING, "Invalid cos_video value at line %d, refer to QoS documentation\n", v->lineno);
continue;
} 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 bindport '%s' at line %d of %s\n", v->value, v->lineno, config);
@ -7166,7 +7166,7 @@ static struct ast_channel *skinny_request(const char *type, int format, const st
/* load the general section */
cat = ast_category_browse(cfg, "general");
config_parse_variables(TYPE_GENERAL, NULL, ast_variable_browse(cfg, "general"));
if (ntohl(bindaddr.sin_addr.s_addr)) {
__ourip = bindaddr.sin_addr;
} else {

View File

@ -351,8 +351,8 @@ END_CONFIG
#define DEV_DSP "/dev/dsp"
#endif
static char *config = "usbradio.conf"; /* default config file */
static char *config1 = "usbradio_tune_%s.conf"; /* tune config file */
static const char *config = "usbradio.conf"; /* default config file */
#define config1 "usbradio_tune_%s.conf" /* tune config file */
static FILE *frxcapraw = NULL, *frxcaptrace = NULL, *frxoutraw = NULL;
static FILE *ftxcapraw = NULL, *ftxcaptrace = NULL, *ftxoutraw = NULL;
@ -1642,7 +1642,7 @@ static int usbradio_text(struct ast_channel *c, const char *text)
/* print received messages */
if(o->debuglevel)ast_verbose(" << Console Received usbradio text %s >> \n", text);
cnt=sscanf(text,"%s %s %s %s %s %c",cmd,rxs,txs,rxpl,txpl,&pwr);
cnt = sscanf(text, "%300s %15s %15s %15s %15s %1c", cmd, rxs, txs, rxpl, txpl, &pwr);
if (strcmp(cmd,"SETCHAN")==0)
{
@ -2812,7 +2812,7 @@ static void store_rxsdtype(struct chan_usbradio_pvt *o, char *s)
static void store_rxgain(struct chan_usbradio_pvt *o, char *s)
{
float f;
sscanf(s,"%f",&f);
sscanf(s, "%30f", &f);
o->rxgain = f;
//ast_log(LOG_WARNING, "set rxgain = %f\n", f);
}
@ -2821,7 +2821,7 @@ static void store_rxgain(struct chan_usbradio_pvt *o, char *s)
static void store_rxvoiceadj(struct chan_usbradio_pvt *o, char *s)
{
float f;
sscanf(s,"%f",&f);
sscanf(s, "%30f", &f);
o->rxvoiceadj = f;
//ast_log(LOG_WARNING, "set rxvoiceadj = %f\n", f);
}
@ -2830,7 +2830,7 @@ static void store_rxvoiceadj(struct chan_usbradio_pvt *o, char *s)
static void store_rxctcssadj(struct chan_usbradio_pvt *o, char *s)
{
float f;
sscanf(s,"%f",&f);
sscanf(s, "%30f", &f);
o->rxctcssadj = f;
//ast_log(LOG_WARNING, "set rxctcssadj = %f\n", f);
}
@ -3815,6 +3815,8 @@ static char *res2cli(int r)
static char *handle_console_key(struct ast_cli_entry *e,
int cmd, struct ast_cli_args *a)
{
char *argv[] = { "radio", "key", NULL };
switch (cmd) {
case CLI_INIT:
e->command = "radio key";
@ -3823,12 +3825,13 @@ static char *handle_console_key(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(console_key(a->fd,a->argc,a->argv));
return res2cli(console_key(a->fd, 2, argv));
}
static char *handle_console_unkey(struct ast_cli_entry *e,
int cmd, struct ast_cli_args *a)
{
char *argv[] = { "radio", "unkey", NULL };
switch (cmd) {
case CLI_INIT:
e->command = "radio unkey";
@ -3837,12 +3840,13 @@ static char *handle_console_unkey(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(console_unkey(a->fd,a->argc,a->argv));
return res2cli(console_unkey(a->fd, 2, argv));
}
static char *handle_radio_tune(struct ast_cli_entry *e,
int cmd, struct ast_cli_args *a)
{
char *argv[5] = { "radio", "tune", a->argc > 2 ? (char *) a->argv[2] : NULL, a->argc > 3 ? (char *) a->argv[3] : NULL };
switch (cmd) {
case CLI_INIT:
e->command = "radio tune";
@ -3851,7 +3855,7 @@ static char *handle_radio_tune(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(radio_tune(a->fd,a->argc,a->argv));
return res2cli(radio_tune(a->fd, a->argc, argv));
}
static char *handle_radio_debug(struct ast_cli_entry *e,
@ -3865,7 +3869,7 @@ static char *handle_radio_debug(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(radio_set_debug(a->fd,a->argc,a->argv));
return res2cli(radio_set_debug(a->fd, a->argc, NULL /* ignored */));
}
static char *handle_radio_debug_off(struct ast_cli_entry *e,
@ -3879,12 +3883,13 @@ static char *handle_radio_debug_off(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(radio_set_debug_off(a->fd,a->argc,a->argv));
return res2cli(radio_set_debug_off(a->fd, a->argc, NULL /* ignored */));
}
static char *handle_radio_active(struct ast_cli_entry *e,
int cmd, struct ast_cli_args *a)
{
char *argv[4] = { "radio", "active", a->argc > 2 ? (char *) a->argv[2] : NULL, };
switch (cmd) {
case CLI_INIT:
e->command = "radio active";
@ -3893,12 +3898,13 @@ static char *handle_radio_active(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(radio_active(a->fd,a->argc,a->argv));
return res2cli(radio_active(a->fd, a->argc, argv));
}
static char *handle_set_xdebug(struct ast_cli_entry *e,
int cmd, struct ast_cli_args *a)
{
char *argv[5] = { "radio", "set", "xdebug", a->argc == 4 ? (char *) a->argv[3] : NULL, };
switch (cmd) {
case CLI_INIT:
e->command = "radio set xdebug";
@ -3907,7 +3913,7 @@ static char *handle_set_xdebug(struct ast_cli_entry *e,
case CLI_GENERATE:
return NULL;
}
return res2cli(radio_set_xpmr_debug(a->fd,a->argc,a->argv));
return res2cli(radio_set_xpmr_debug(a->fd, a->argc, argv));
}

View File

@ -261,7 +261,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)
@ -319,7 +319,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;

View File

@ -922,9 +922,9 @@ static int _parse (union misdn_cfg_pt *dest, const char *value, enum misdn_cfg_t
int res;
if (strchr(value,'x')) {
res = sscanf(value, "%x", &tmp);
res = sscanf(value, "%30x", &tmp);
} else {
res = sscanf(value, "%d", &tmp);
res = sscanf(value, "%30d", &tmp);
}
if (res) {
dest->num = ast_malloc(sizeof(int));
@ -939,7 +939,7 @@ static int _parse (union misdn_cfg_pt *dest, const char *value, enum misdn_cfg_t
break;
case MISDN_CTYPE_BOOLINT:
dest->num = ast_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);
@ -1008,7 +1008,7 @@ static void _build_port_config (struct ast_variable *v, char *cat)
for (token = strsep(&tmp, ","); token; token = strsep(&tmp, ","), *ptpbuf = 0) {
if (!*token)
continue;
if (sscanf(token, "%d-%d%s", &start, &end, ptpbuf) >= 2) {
if (sscanf(token, "%30d-%30d%511s", &start, &end, ptpbuf) >= 2) {
for (; start <= end; start++) {
if (start <= max_ports && start > 0) {
cfg_for_ports[start] = 1;
@ -1017,7 +1017,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%511s", &start, ptpbuf)) {
if (start <= max_ports && start > 0) {
cfg_for_ports[start] = 1;
ptp[start] = (strstr(ptpbuf, "ptp")) ? 1 : 0;

View File

@ -516,7 +516,7 @@ tryanotherpos:
/* if so, try next channel */
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
if (why) {
ast_log(LOG_NOTICE, "span '%d' channel '%d' out-of-service (reason: %s), not sending RESTART\n", pri->span,
pri->pvts[pri->resetpos]->channel, (why & SRVST_FAREND) ? (why & SRVST_NEAREND) ? "both ends" : "far end" : "near end");
@ -1014,7 +1014,7 @@ static void *pri_dchannel(void *vpri)
ast_mutex_unlock(&pri->pvts[chanpos]->service_lock);
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
if (why) {
ast_log(LOG_NOTICE, "span '%d' channel '%d' out-of-service (reason: %s), ignoring RESTART\n", pri->span,
e->restart.channel, (why & SRVST_FAREND) ? (why & SRVST_NEAREND) ? "both ends" : "far end" : "near end");
@ -1126,7 +1126,7 @@ static void *pri_dchannel(void *vpri)
snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, pri->pvts[chanpos]->pri->span, ch);
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
ast_db_del(db_chan_name, SRVST_DBKEY);
}
switch (e->service.changestatus) {
@ -2369,7 +2369,7 @@ int sig_pri_available(struct sig_pri_chan *p, int channelmatch, ast_group_t grou
snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, p->pri->span, p->channel);
if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
sscanf(db_answer, "%c:%d", &state, &why);
sscanf(db_answer, "%1c:%30d", &state, &why);
}
if ((p->resetting || p->call) || (why)) {
if (why) {

View File

@ -279,11 +279,11 @@ i16 code_string_parse(t_pmr_chan *pChan)
if(!xpmrx(pChan,XXO_LSDCODEPARSE_1))
#endif
{
sscanf(p,"%f",&_f);
sscanf(p, "%30f", &_f);
ri=CtcssFreqIndex(_f);
if(ri>maxctcssindex)maxctcssindex=ri;
sscanf(pChan->pTxCode[i],"%f",&_f);
sscanf(pChan->pTxCode[i], "%30f", &_f);
_ti=CtcssFreqIndex(_f);
if(_f>maxctcsstxfreq)maxctcsstxfreq=_f;
@ -350,7 +350,7 @@ i16 code_string_parse(t_pmr_chan *pChan)
if(!lsd_code_parse(pChan,3))
#endif
{
sscanf(p,"%f",&f);
sscanf(p, "%30f", &f);
ti=CtcssFreqIndex(f);
if(f>maxctcsstxfreq)maxctcsstxfreq=f;

View File

@ -364,7 +364,7 @@ static int parse_config(int reload)
} else
ast_log(LOG_ERROR,"Error! Complexity must be 0-10\n");
} else if (!strcasecmp(var->name, "vbr_quality")) {
if (sscanf(var->value, "%f", &res_f) == 1 && res_f >= 0 && res_f <= 10) {
if (sscanf(var->value, "%30f", &res_f) == 1 && res_f >= 0 && res_f <= 10) {
ast_verb(3, "CODEC SPEEX: Setting VBR Quality to %f\n",res_f);
vbr_quality = res_f;
} else
@ -403,7 +403,7 @@ static int parse_config(int reload)
pp_agc = ast_true(var->value) ? 1 : 0;
ast_verb(3, "CODEC SPEEX: Preprocessor AGC. [%s]\n",pp_agc ? "on" : "off");
} else if (!strcasecmp(var->name, "pp_agc_level")) {
if (sscanf(var->value, "%f", &res_f) == 1 && res_f >= 0) {
if (sscanf(var->value, "%30f", &res_f) == 1 && res_f >= 0) {
ast_verb(3, "CODEC SPEEX: Setting preprocessor AGC Level to %f\n",res_f);
pp_agc_level = res_f;
} else
@ -415,13 +415,13 @@ static int parse_config(int reload)
pp_dereverb = ast_true(var->value) ? 1 : 0;
ast_verb(3, "CODEC SPEEX: Preprocessor Dereverb. [%s]\n",pp_dereverb ? "on" : "off");
} else if (!strcasecmp(var->name, "pp_dereverb_decay")) {
if (sscanf(var->value, "%f", &res_f) == 1 && res_f >= 0) {
if (sscanf(var->value, "%30f", &res_f) == 1 && res_f >= 0) {
ast_verb(3, "CODEC SPEEX: Setting preprocessor Dereverb Decay to %f\n",res_f);
pp_dereverb_decay = res_f;
} else
ast_log(LOG_ERROR,"Error! Preprocessor Dereverb Decay must be >= 0\n");
} else if (!strcasecmp(var->name, "pp_dereverb_level")) {
if (sscanf(var->value, "%f", &res_f) == 1 && res_f >= 0) {
if (sscanf(var->value, "%30f", &res_f) == 1 && res_f >= 0) {
ast_verb(3, "CODEC SPEEX: Setting preprocessor Dereverb Level to %f\n",res_f);
pp_dereverb_level = res_f;
} else

View File

@ -412,6 +412,17 @@ you wish to put into it (even if you did not allocate the buffer yourself),
use a direct strcpy(), as it can be inlined and optimized to simple
processor operations, unlike ast_copy_string().
* String conversions
--------------------
When converting from strings to integers or floats, use the sscanf function
in preference to the atoi and atof family of functions, as sscanf detects
errors. Always check the return value of sscanf to verify that your numeric
variables successfully scanned before using them. Also, to avoid a potential
libc bug, always specify a maximum width for each format specifier, including
integers and floats. A good length for both integers and floats is 30, as
this is more than generous, even if you're using doubles or long integers.
* Use of functions
------------------

View File

@ -364,7 +364,7 @@ static int func_channel_write(struct ast_channel *chan, const char *function,
else if (!strcasecmp(data, "amaflags")) {
ast_channel_lock(chan);
if(isdigit(*value)) {
sscanf(value, "%d", &chan->amaflags);
sscanf(value, "%30d", &chan->amaflags);
} else if (!strcasecmp(value,"OMIT")){
chan->amaflags = 1;
} else if (!strcasecmp(value,"BILLING")){
@ -409,10 +409,10 @@ static int func_channel_write(struct ast_channel *chan, const char *function,
} else if (!strcasecmp(data, "callgroup"))
chan->callgroup = ast_get_group(value);
else if (!strcasecmp(data, "txgain")) {
sscanf(value, "%hhd", &gainset);
sscanf(value, "%4hhd", &gainset);
ast_channel_setoption(chan, AST_OPTION_TXGAIN, &gainset, sizeof(gainset), 0);
} else if (!strcasecmp(data, "rxgain")) {
sscanf(value, "%hhd", &gainset);
sscanf(value, "%4hhd", &gainset);
ast_channel_setoption(chan, AST_OPTION_RXGAIN, &gainset, sizeof(gainset), 0);
} else if (!strcasecmp(data, "transfercapability")) {
unsigned short i;

View File

@ -129,7 +129,7 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
}
*ptrvalue++ = '\0';
sortable_keys[count2].key = ptrkey;
sscanf(ptrvalue, "%f", &sortable_keys[count2].value);
sscanf(ptrvalue, "%30f", &sortable_keys[count2].value);
count2++;
}
@ -191,15 +191,15 @@ static int cut_internal(struct ast_channel *chan, char *data, struct ast_str **b
int start_field, stop_field;
char trashchar;
if (sscanf(next_range, "%d-%d", &start_field, &stop_field) == 2) {
if (sscanf(next_range, "%30d-%30d", &start_field, &stop_field) == 2) {
/* range with both start and end */
} else if (sscanf(next_range, "-%d", &stop_field) == 1) {
} else if (sscanf(next_range, "-%30d", &stop_field) == 1) {
/* range with end only */
start_field = 1;
} else if ((sscanf(next_range, "%d%c", &start_field, &trashchar) == 2) && (trashchar == '-')) {
} else if ((sscanf(next_range, "%30d%1c", &start_field, &trashchar) == 2) && (trashchar == '-')) {
/* range with start only */
stop_field = INT_MAX;
} else if (sscanf(next_range, "%d", &start_field) == 1) {
} else if (sscanf(next_range, "%30d", &start_field) == 1) {
/* single number */
stop_field = start_field;
} else {

View File

@ -72,7 +72,7 @@ static int isexten_function_read(struct ast_channel *chan, const char *cmd, char
if (!ast_strlen_zero(args.priority)) {
int priority_num;
if (sscanf(args.priority, "%d", &priority_num) == 1 && priority_num > 0) {
if (sscanf(args.priority, "%30d", &priority_num) == 1 && priority_num > 0) {
int res;
res = ast_exists_extension(chan, args.context, args.exten, priority_num,
chan->cid.cid_num);

View File

@ -365,7 +365,7 @@ static int enum_result_read(struct ast_channel *chan, const char *cmd, char *dat
goto finish;
}
if (sscanf(args.resultnum, "%u", &num) != 1) {
if (sscanf(args.resultnum, "%30u", &num) != 1) {
ast_log(LOG_ERROR, "Invalid value '%s' for resultnum to ENUMRESULT!\n", args.resultnum);
goto finish;
}

View File

@ -255,12 +255,12 @@ static int math(struct ast_channel *chan, const char *cmd, char *parse,
return -1;
}
if (sscanf(mvalue1, "%lf", &fnum1) != 1) {
if (sscanf(mvalue1, "%30lf", &fnum1) != 1) {
ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue1);
return -1;
}
if (sscanf(mvalue2, "%lf", &fnum2) != 1) {
if (sscanf(mvalue2, "%30lf", &fnum2) != 1) {
ast_log(LOG_WARNING, "'%s' is not a valid number\n", mvalue2);
return -1;
}
@ -397,7 +397,7 @@ static int crement_function_read(struct ast_channel *chan, const char *cmd,
return -1;
}
if (sscanf(var, "%d%c", &int_value, &endchar) == 0 || endchar != 0) {
if (sscanf(var, "%30d%1c", &int_value, &endchar) == 0 || endchar != 0) {
ast_log(LOG_NOTICE, "The content of ${%s} is not a numeric value - bailing out!\n", data);
ast_channel_unlock(chan);
return -1;

View File

@ -836,7 +836,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
if (strcasecmp(tmp, "multirow") == 0)
ast_set_flag((*query), OPT_MULTIROW);
if ((tmp = ast_variable_retrieve(cfg, catg, "rowlimit")))
sscanf(tmp, "%d", &((*query)->rowlimit));
sscanf(tmp, "%30d", &((*query)->rowlimit));
}
(*query)->acf = ast_calloc(1, sizeof(struct ast_custom_function));

View File

@ -63,10 +63,10 @@ static int acf_rand_exec(struct ast_channel *chan, const char *cmd,
AST_STANDARD_APP_ARGS(args, parse);
if (ast_strlen_zero(args.min) || sscanf(args.min, "%d", &min_int) != 1)
if (ast_strlen_zero(args.min) || sscanf(args.min, "%30d", &min_int) != 1)
min_int = 0;
if (ast_strlen_zero(args.max) || sscanf(args.max, "%d", &max_int) != 1)
if (ast_strlen_zero(args.max) || sscanf(args.max, "%30d", &max_int) != 1)
max_int = RAND_MAX;
if (max_int < min_int) {

View File

@ -239,7 +239,7 @@ static int speex_write(struct ast_channel *chan, const char *cmd, char *data, co
}
if (!strcasecmp(cmd, "agc")) {
if (!sscanf(value, "%f", &(*sdi)->agclevel))
if (!sscanf(value, "%30f", &(*sdi)->agclevel))
(*sdi)->agclevel = ast_true(value) ? DEFAULT_AGC_LEVEL : 0.0;
if ((*sdi)->agclevel > 32768.0) {

View File

@ -123,7 +123,7 @@ static int acf_sprintf(struct ast_channel *chan, const char *cmd, char *data, ch
/* Convert the argument into the required type */
if (arg.var[argcount]) {
if (sscanf(arg.var[argcount++], "%d", &tmpi) != 1) {
if (sscanf(arg.var[argcount++], "%30d", &tmpi) != 1) {
ast_log(LOG_ERROR, "Argument '%s' is not an integer number for format '%s'\n", arg.var[argcount - 1], formatbuf);
goto sprintf_fail;
}
@ -146,7 +146,7 @@ static int acf_sprintf(struct ast_channel *chan, const char *cmd, char *data, ch
/* Convert the argument into the required type */
if (arg.var[argcount]) {
if (sscanf(arg.var[argcount++], "%lf", &tmpd) != 1) {
if (sscanf(arg.var[argcount++], "%30lf", &tmpd) != 1) {
ast_log(LOG_ERROR, "Argument '%s' is not a floating point number for format '%s'\n", arg.var[argcount - 1], formatbuf);
goto sprintf_fail;
}

View File

@ -137,7 +137,7 @@ static int timeout_write(struct ast_channel *chan, const char *cmd, char *data,
if (!value)
return -1;
res = sscanf(value, "%ld%lf", &sec, &x);
res = sscanf(value, "%30ld%30lf", &sec, &x);
if (res == 0 || sec < 0) {
when.tv_sec = 0;
when.tv_usec = 0;

View File

@ -297,7 +297,7 @@ struct ast_ha *ast_append_ha(const char *sense, const char *stuff, struct ast_ha
nm++;
if (!strchr(nm, '.')) {
if ((sscanf(nm, "%d", &x) == 1) && (x >= 0) && (x <= 32)) {
if ((sscanf(nm, "%30d", &x) == 1) && (x >= 0) && (x <= 32)) {
ha->netmask.s_addr = htonl(0xFFFFFFFF << (32 - x));
} else {
ast_log(LOG_WARNING, "Invalid CIDR in %s\n", stuff);
@ -423,7 +423,7 @@ int ast_str2cos(const char *value, unsigned int *cos)
{
int fval;
if (sscanf(value, "%d", &fval) == 1) {
if (sscanf(value, "%30d", &fval) == 1) {
if (fval < 8) {
*cos = fval;
return 0;
@ -438,7 +438,7 @@ int ast_str2tos(const char *value, unsigned int *tos)
int fval;
unsigned int x;
if (sscanf(value, "%i", &fval) == 1) {
if (sscanf(value, "%30i", &fval) == 1) {
*tos = fval & 0xFF;
return 0;
}

View File

@ -1389,7 +1389,7 @@ static int ast_makesocket(void)
if (!ast_strlen_zero(ast_config_AST_CTL_PERMISSIONS)) {
int p1;
mode_t p;
sscanf(ast_config_AST_CTL_PERMISSIONS, "%o", &p1);
sscanf(ast_config_AST_CTL_PERMISSIONS, "%30o", &p1);
p = p1;
if ((chmod(ast_config_AST_SOCKET, p)) < 0)
ast_log(LOG_WARNING, "Unable to change file permissions of %s: %s\n", ast_config_AST_SOCKET, strerror(errno));
@ -2192,10 +2192,10 @@ static char *cli_prompt(EditLine *editline)
switch (*t) {
case 'C': /* color */
t++;
if (sscanf(t, "%d;%d%n", &fgcolor, &bgcolor, &i) == 2) {
if (sscanf(t, "%30d;%30d%n", &fgcolor, &bgcolor, &i) == 2) {
ast_str_append(&prompt, 0, "%s", term_color_code(term_code, fgcolor, bgcolor, sizeof(term_code)));
t += i - 1;
} else if (sscanf(t, "%d%n", &fgcolor, &i) == 1) {
} else if (sscanf(t, "%30d%n", &fgcolor, &i) == 1) {
ast_str_append(&prompt, 0, "%s", term_color_code(term_code, fgcolor, 0, sizeof(term_code)));
t += i - 1;
}
@ -2236,7 +2236,7 @@ static char *cli_prompt(EditLine *editline)
#ifdef HAVE_GETLOADAVG
case 'l': /* load avg */
t++;
if (sscanf(t, "%d", &which) == 1 && which > 0 && which <= 3) {
if (sscanf(t, "%30d", &which) == 1 && which > 0 && which <= 3) {
double list[3];
getloadavg(list, 3);
ast_str_append(&prompt, 0, "%.2f", list[which - 1]);
@ -2878,7 +2878,7 @@ static void ast_readconfig(void)
/* debug level (-d at startup) */
} else if (!strcasecmp(v->name, "debug")) {
option_debug = 0;
if (sscanf(v->value, "%d", &option_debug) != 1) {
if (sscanf(v->value, "%30d", &option_debug) != 1) {
option_debug = ast_true(v->value);
}
#if HAVE_WORKING_FORK
@ -2926,7 +2926,7 @@ static void ast_readconfig(void)
} else if (!strcasecmp(v->name, "internal_timing")) {
ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_INTERNAL_TIMING);
} else if (!strcasecmp(v->name, "maxcalls")) {
if ((sscanf(v->value, "%d", &option_maxcalls) != 1) || (option_maxcalls < 0)) {
if ((sscanf(v->value, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0)) {
option_maxcalls = 0;
}
} else if (!strcasecmp(v->name, "maxload")) {
@ -2935,7 +2935,7 @@ static void ast_readconfig(void)
if (getloadavg(test, 1) == -1) {
ast_log(LOG_ERROR, "Cannot obtain load average on this system. 'maxload' option disabled.\n");
option_maxload = 0.0;
} else if ((sscanf(v->value, "%lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
} else if ((sscanf(v->value, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
option_maxload = 0.0;
}
/* Set the maximum amount of open files */
@ -2977,7 +2977,7 @@ static void ast_readconfig(void)
} else if (!strcasecmp(v->name, "minmemfree")) {
/* specify the minimum amount of free memory to retain. Asterisk should stop accepting new calls
* if the amount of free memory falls below this watermark */
if ((sscanf(v->value, "%ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
if ((sscanf(v->value, "%30ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
option_minmemfree = 0;
}
#endif
@ -2998,7 +2998,7 @@ static void ast_readconfig(void)
}
for (v = ast_variable_browse(cfg, "compat"); v; v = v->next) {
float version;
if (sscanf(v->value, "%f", &version) != 1) {
if (sscanf(v->value, "%30f", &version) != 1) {
ast_log(LOG_WARNING, "Compatibility version for option '%s' is not a number: '%s'\n", v->name, v->value);
continue;
}
@ -3142,7 +3142,7 @@ int main(int argc, char *argv[])
switch (c) {
#if defined(HAVE_SYSINFO)
case 'e':
if ((sscanf(&optarg[1], "%ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
if ((sscanf(&optarg[1], "%30ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
option_minmemfree = 0;
}
break;
@ -3182,11 +3182,11 @@ int main(int argc, char *argv[])
ast_set_flag(&ast_options, AST_OPT_FLAG_MUTE);
break;
case 'M':
if ((sscanf(optarg, "%d", &option_maxcalls) != 1) || (option_maxcalls < 0))
if ((sscanf(optarg, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0))
option_maxcalls = 0;
break;
case 'L':
if ((sscanf(optarg, "%lf", &option_maxload) != 1) || (option_maxload < 0.0))
if ((sscanf(optarg, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0))
option_maxload = 0.0;
break;
case 'q':

View File

@ -1493,7 +1493,7 @@ static int do_reload(int reload)
batchsafeshutdown = ast_true(batchsafeshutdown_value);
}
if ((size_value = ast_variable_retrieve(config, "general", "size"))) {
if (sscanf(size_value, "%d", &cfg_size) < 1)
if (sscanf(size_value, "%30d", &cfg_size) < 1)
ast_log(LOG_WARNING, "Unable to convert '%s' to a numeric value.\n", size_value);
else if (cfg_size < 0)
ast_log(LOG_WARNING, "Invalid maximum batch size '%d' specified, using default\n", cfg_size);
@ -1501,7 +1501,7 @@ static int do_reload(int reload)
batchsize = cfg_size;
}
if ((time_value = ast_variable_retrieve(config, "general", "time"))) {
if (sscanf(time_value, "%d", &cfg_time) < 1)
if (sscanf(time_value, "%30d", &cfg_time) < 1)
ast_log(LOG_WARNING, "Unable to convert '%s' to a numeric value.\n", time_value);
else if (cfg_time < 0)
ast_log(LOG_WARNING, "Invalid maximum batch time '%d' specified, using default\n", cfg_time);

View File

@ -6144,9 +6144,9 @@ ast_group_t ast_get_group(const char *s)
c = ast_strdupa(s);
while ((piece = strsep(&c, ","))) {
if (sscanf(piece, "%d-%d", &start, &finish) == 2) {
if (sscanf(piece, "%30d-%30d", &start, &finish) == 2) {
/* Range */
} else if (sscanf(piece, "%d", &start)) {
} else if (sscanf(piece, "%30d", &start)) {
/* Just one */
finish = start;
} else {

View File

@ -444,7 +444,7 @@ static char *handle_verbose(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
atleast = 1;
if (argc != e->args + atleast + 1 && argc != e->args + atleast + 2)
return CLI_SHOWUSAGE;
if (sscanf(argv[e->args + atleast], "%d", &newlevel) != 1)
if (sscanf(argv[e->args + atleast], "%30d", &newlevel) != 1)
return CLI_SHOWUSAGE;
if (argc == e->args + atleast + 2) {
unsigned int debug = (*what == 'C');

View File

@ -364,7 +364,7 @@ void ast_variable_insert(struct ast_category *category, struct ast_variable *var
int lineno;
int insertline;
if (!variable || sscanf(line, "%d", &insertline) != 1) {
if (!variable || sscanf(line, "%30d", &insertline) != 1) {
return;
}
if (!insertline) {

View File

@ -394,7 +394,7 @@ static int do_reload(int loading)
enabled = ast_true(enabled_value);
}
if ((interval_value = ast_variable_retrieve(config, "general", "refreshinterval"))) {
if (sscanf(interval_value, "%d", &interval) < 1)
if (sscanf(interval_value, "%30d", &interval) < 1)
ast_log(LOG_WARNING, "Unable to convert '%s' to a numeric value.\n", interval_value);
else if (interval < 0)
ast_log(LOG_WARNING, "Invalid refresh interval '%d' specified, using default\n", interval);

View File

@ -1670,7 +1670,7 @@ static int _dsp_init(int reload)
const char *value;
value = ast_variable_retrieve(cfg, "default", "silencethreshold");
if (value && sscanf(value, "%d", &thresholds[THRESHOLD_SILENCE]) != 1) {
if (value && sscanf(value, "%30d", &thresholds[THRESHOLD_SILENCE]) != 1) {
ast_log(LOG_WARNING, "%s: '%s' is not a valid silencethreshold value\n", CONFIG_FILE_NAME, value);
thresholds[THRESHOLD_SILENCE] = 256;
} else if (!value) {

View File

@ -114,7 +114,7 @@ static int cclen(const char *number)
strncpy(digits, number, 2);
if (!sscanf(digits, "%d", &cc)) {
if (!sscanf(digits, "%30d", &cc)) {
return 0;
}

View File

@ -657,7 +657,7 @@ static struct parkeduser *park_space_reserve(struct ast_channel *chan,
* limitation here. If extout was not numeric, we could permit
* arbitrary non-numeric extensions.
*/
if (sscanf(parkingexten, "%d", &parking_space) != 1 || parking_space < 0) {
if (sscanf(parkingexten, "%30d", &parking_space) != 1 || parking_space < 0) {
AST_LIST_UNLOCK(&parkinglot->parkings);
parkinglot_unref(parkinglot);
free(pu);
@ -3484,7 +3484,7 @@ static int park_call_exec(struct ast_channel *chan, const char *data)
if (parse) {
if (!ast_strlen_zero(app_args.timeout)) {
if (sscanf(app_args.timeout, "%d", &args.timeout) != 1) {
if (sscanf(app_args.timeout, "%30d", &args.timeout) != 1) {
ast_log(LOG_WARNING, "Invalid timeout '%s' provided\n", app_args.timeout);
args.timeout = 0;
}
@ -3496,7 +3496,7 @@ static int park_call_exec(struct ast_channel *chan, const char *data)
args.return_ext = app_args.return_ext;
}
if (!ast_strlen_zero(app_args.return_pri)) {
if (sscanf(app_args.return_pri, "%d", &args.return_pri) != 1) {
if (sscanf(app_args.return_pri, "%30d", &args.return_pri) != 1) {
ast_log(LOG_WARNING, "Invalid priority '%s' specified\n", app_args.return_pri);
args.return_pri = 0;
}
@ -3765,13 +3765,13 @@ static struct ast_parkinglot *build_parkinglot(char *name, struct ast_variable *
if (!strcasecmp(confvar->name, "context")) {
ast_copy_string(parkinglot->parking_con, confvar->value, sizeof(parkinglot->parking_con));
} else if (!strcasecmp(confvar->name, "parkingtime")) {
if ((sscanf(confvar->value, "%d", &parkinglot->parkingtime) != 1) || (parkinglot->parkingtime < 1)) {
if ((sscanf(confvar->value, "%30d", &parkinglot->parkingtime) != 1) || (parkinglot->parkingtime < 1)) {
ast_log(LOG_WARNING, "%s is not a valid parkingtime\n", confvar->value);
parkinglot->parkingtime = DEFAULT_PARK_TIME;
} else
parkinglot->parkingtime = parkinglot->parkingtime * 1000;
} else if (!strcasecmp(confvar->name, "parkpos")) {
if (sscanf(confvar->value, "%d-%d", &start, &end) != 2) {
if (sscanf(confvar->value, "%30d-%30d", &start, &end) != 2) {
ast_log(LOG_WARNING, "Format for parking positions is a-b, where a and b are numbers at line %d of parking.conf\n", confvar->lineno);
error = 1;
} else {
@ -3935,13 +3935,13 @@ static int load_config(void)
} else if (!strcasecmp(var->name, "context")) {
ast_copy_string(default_parkinglot->parking_con, var->value, sizeof(default_parkinglot->parking_con));
} else if (!strcasecmp(var->name, "parkingtime")) {
if ((sscanf(var->value, "%d", &default_parkinglot->parkingtime) != 1) || (default_parkinglot->parkingtime < 1)) {
if ((sscanf(var->value, "%30d", &default_parkinglot->parkingtime) != 1) || (default_parkinglot->parkingtime < 1)) {
ast_log(LOG_WARNING, "%s is not a valid parkingtime\n", var->value);
default_parkinglot->parkingtime = DEFAULT_PARK_TIME;
} else
default_parkinglot->parkingtime = default_parkinglot->parkingtime * 1000;
} else if (!strcasecmp(var->name, "parkpos")) {
if (sscanf(var->value, "%d-%d", &start, &end) != 2) {
if (sscanf(var->value, "%30d-%30d", &start, &end) != 2) {
ast_log(LOG_WARNING, "Format for parking positions is a-b, where a and b are numbers at line %d of features.conf\n", var->lineno);
} else if (default_parkinglot) {
default_parkinglot->parking_start = start;
@ -3984,24 +3984,24 @@ static int load_config(void)
} else if (!strcasecmp(var->name, "adsipark")) {
adsipark = ast_true(var->value);
} else if (!strcasecmp(var->name, "transferdigittimeout")) {
if ((sscanf(var->value, "%d", &transferdigittimeout) != 1) || (transferdigittimeout < 1)) {
if ((sscanf(var->value, "%30d", &transferdigittimeout) != 1) || (transferdigittimeout < 1)) {
ast_log(LOG_WARNING, "%s is not a valid transferdigittimeout\n", var->value);
transferdigittimeout = DEFAULT_TRANSFER_DIGIT_TIMEOUT;
} else
transferdigittimeout = transferdigittimeout * 1000;
} else if (!strcasecmp(var->name, "featuredigittimeout")) {
if ((sscanf(var->value, "%d", &featuredigittimeout) != 1) || (featuredigittimeout < 1)) {
if ((sscanf(var->value, "%30d", &featuredigittimeout) != 1) || (featuredigittimeout < 1)) {
ast_log(LOG_WARNING, "%s is not a valid featuredigittimeout\n", var->value);
featuredigittimeout = DEFAULT_FEATURE_DIGIT_TIMEOUT;
}
} else if (!strcasecmp(var->name, "atxfernoanswertimeout")) {
if ((sscanf(var->value, "%d", &atxfernoanswertimeout) != 1) || (atxfernoanswertimeout < 1)) {
if ((sscanf(var->value, "%30d", &atxfernoanswertimeout) != 1) || (atxfernoanswertimeout < 1)) {
ast_log(LOG_WARNING, "%s is not a valid atxfernoanswertimeout\n", var->value);
atxfernoanswertimeout = DEFAULT_NOANSWER_TIMEOUT_ATTENDED_TRANSFER;
} else
atxfernoanswertimeout = atxfernoanswertimeout * 1000;
} else if (!strcasecmp(var->name, "atxferloopdelay")) {
if ((sscanf(var->value, "%u", &atxferloopdelay) != 1)) {
if ((sscanf(var->value, "%30u", &atxferloopdelay) != 1)) {
ast_log(LOG_WARNING, "%s is not a valid atxferloopdelay\n", var->value);
atxferloopdelay = DEFAULT_ATXFER_LOOP_DELAY;
} else
@ -4009,7 +4009,7 @@ static int load_config(void)
} else if (!strcasecmp(var->name, "atxferdropcall")) {
atxferdropcall = ast_true(var->value);
} else if (!strcasecmp(var->name, "atxfercallbackretries")) {
if ((sscanf(var->value, "%u", &atxferloopdelay) != 1)) {
if ((sscanf(var->value, "%30u", &atxferloopdelay) != 1)) {
ast_log(LOG_WARNING, "%s is not a valid atxfercallbackretries\n", var->value);
atxfercallbackretries = DEFAULT_ATXFER_CALLBACK_RETRIES;
}
@ -4605,7 +4605,7 @@ static int manager_park(struct mansession *s, const struct message *m)
}
if (!ast_strlen_zero(timeout)) {
sscanf(timeout, "%d", &to);
sscanf(timeout, "%30d", &to);
}
res = ast_masq_park_call(ch1, ch2, to, &parkExt);

View File

@ -735,7 +735,7 @@ static char *show_codec_n(struct ast_cli_entry *e, int cmd, struct ast_cli_args
if (a->argc != 4)
return CLI_SHOWUSAGE;
if (sscanf(a->argv[3],"%d",&codec) != 1)
if (sscanf(a->argv[3], "%30d", &codec) != 1)
return CLI_SHOWUSAGE;
for (i = 0; i < 32; i++)

View File

@ -154,7 +154,7 @@ uint32_t ast_http_manid_from_vars(struct ast_variable *headers)
cookies = ast_http_get_cookies(headers);
for (v = cookies; v; v = v->next) {
if (!strcasecmp(v->name, "mansession_id")) {
sscanf(v->value, "%x", &mngid);
sscanf(v->value, "%30x", &mngid);
break;
}
}

View File

@ -243,50 +243,50 @@ static struct ast_generator playtones = {
int ast_tone_zone_part_parse(const char *s, struct ast_tone_zone_part *tone_data)
{
if (sscanf(s, "%u+%u/%u", &tone_data->freq1, &tone_data->freq2,
if (sscanf(s, "%30u+%30u/%30u", &tone_data->freq1, &tone_data->freq2,
&tone_data->time) == 3) {
/* f1+f2/time format */
} else if (sscanf(s, "%u+%u", &tone_data->freq1, &tone_data->freq2) == 2) {
} else if (sscanf(s, "%30u+%30u", &tone_data->freq1, &tone_data->freq2) == 2) {
/* f1+f2 format */
tone_data->time = 0;
} else if (sscanf(s, "%u*%u/%u", &tone_data->freq1, &tone_data->freq2,
} else if (sscanf(s, "%30u*%30u/%30u", &tone_data->freq1, &tone_data->freq2,
&tone_data->time) == 3) {
/* f1*f2/time format */
tone_data->modulate = 1;
} else if (sscanf(s, "%u*%u", &tone_data->freq1, &tone_data->freq2) == 2) {
} else if (sscanf(s, "%30u*%30u", &tone_data->freq1, &tone_data->freq2) == 2) {
/* f1*f2 format */
tone_data->time = 0;
tone_data->modulate = 1;
} else if (sscanf(s, "%u/%u", &tone_data->freq1, &tone_data->time) == 2) {
} else if (sscanf(s, "%30u/%30u", &tone_data->freq1, &tone_data->time) == 2) {
/* f1/time format */
tone_data->freq2 = 0;
} else if (sscanf(s, "%u", &tone_data->freq1) == 1) {
} else if (sscanf(s, "%30u", &tone_data->freq1) == 1) {
/* f1 format */
tone_data->freq2 = 0;
tone_data->time = 0;
} else if (sscanf(s, "M%u+M%u/%u", &tone_data->freq1, &tone_data->freq2,
} else if (sscanf(s, "M%30u+M%30u/%30u", &tone_data->freq1, &tone_data->freq2,
&tone_data->time) == 3) {
/* Mf1+Mf2/time format */
tone_data->midinote = 1;
} else if (sscanf(s, "M%u+M%u", &tone_data->freq1, &tone_data->freq2) == 2) {
} else if (sscanf(s, "M%30u+M%30u", &tone_data->freq1, &tone_data->freq2) == 2) {
/* Mf1+Mf2 format */
tone_data->time = 0;
tone_data->midinote = 1;
} else if (sscanf(s, "M%u*M%u/%u", &tone_data->freq1, &tone_data->freq2,
} else if (sscanf(s, "M%30u*M%30u/%30u", &tone_data->freq1, &tone_data->freq2,
&tone_data->time) == 3) {
/* Mf1*Mf2/time format */
tone_data->modulate = 1;
tone_data->midinote = 1;
} else if (sscanf(s, "M%u*M%u", &tone_data->freq1, &tone_data->freq2) == 2) {
} else if (sscanf(s, "M%30u*M%30u", &tone_data->freq1, &tone_data->freq2) == 2) {
/* Mf1*Mf2 format */
tone_data->time = 0;
tone_data->modulate = 1;
tone_data->midinote = 1;
} else if (sscanf(s, "M%u/%u", &tone_data->freq1, &tone_data->time) == 2) {
} else if (sscanf(s, "M%30u/%30u", &tone_data->freq1, &tone_data->time) == 2) {
/* Mf1/time format */
tone_data->freq2 = -1;
tone_data->midinote = 1;
} else if (sscanf(s, "M%u", &tone_data->freq1) == 1) {
} else if (sscanf(s, "M%30u", &tone_data->freq1) == 1) {
/* Mf1 format */
tone_data->freq2 = -1;
tone_data->time = 0;

View File

@ -2474,7 +2474,7 @@ static int action_waitevent(struct mansession *s, const struct message *m)
}
if (!ast_strlen_zero(timeouts)) {
sscanf(timeouts, "%i", &timeout);
sscanf(timeouts, "%30i", &timeout);
if (timeout < -1) {
timeout = -1;
}
@ -2962,7 +2962,7 @@ static int action_redirect(struct mansession *s, const struct message *m)
return 0;
}
if (!ast_strlen_zero(priority) && (sscanf(priority, "%d", &pi) != 1)) {
if (!ast_strlen_zero(priority) && (sscanf(priority, "%30d", &pi) != 1)) {
if ((pi = ast_findlabel_extension(NULL, context, exten, priority, NULL)) < 1) {
astman_send_error(s, m, "Invalid priority");
return 0;
@ -3270,13 +3270,13 @@ static int action_originate(struct mansession *s, const struct message *m)
astman_send_error(s, m, "Channel not specified");
return 0;
}
if (!ast_strlen_zero(priority) && (sscanf(priority, "%d", &pi) != 1)) {
if (!ast_strlen_zero(priority) && (sscanf(priority, "%30d", &pi) != 1)) {
if ((pi = ast_findlabel_extension(NULL, context, exten, priority, NULL)) < 1) {
astman_send_error(s, m, "Invalid priority");
return 0;
}
}
if (!ast_strlen_zero(timeout) && (sscanf(timeout, "%d", &to) != 1)) {
if (!ast_strlen_zero(timeout) && (sscanf(timeout, "%30d", &to) != 1)) {
astman_send_error(s, m, "Invalid timeout");
return 0;
}
@ -4731,7 +4731,7 @@ static int generic_http_callback(struct ast_tcptls_session_instance *ser,
cookies = ast_http_get_cookies(headers);
for (v = cookies; v; v = v->next) {
if (!strcasecmp(v->name, "mansession_id")) {
sscanf(v->value, "%x", &ident);
sscanf(v->value, "%30x", &ident);
break;
}
}
@ -4988,7 +4988,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser,
nonce = 0;
goto out_401;
}
if (sscanf(d.nonce, "%lx", &nonce) != 1) {
if (sscanf(d.nonce, "%30lx", &nonce) != 1) {
ast_log(LOG_WARNING, "Received incorrect nonce in Digest <%s>\n", d.nonce);
nonce = 0;
goto out_401;
@ -5094,7 +5094,7 @@ static int auth_http_callback(struct ast_tcptls_session_instance *ser,
stale = 1;
goto out_401;
} else {
sscanf(d.nc, "%lx", &nc);
sscanf(d.nc, "%30lx", &nc);
if (session->nc >= nc || ((time_now - session->noncetime) > 62) ) {
/*
* Nonce time expired (> 2 minutes) or something wrong with nonce

View File

@ -280,7 +280,7 @@ int ast_str_to_eid(struct ast_eid *eid, const char *s)
unsigned int eid_int[6];
int x;
if (sscanf(s, "%x:%x:%x:%x:%x:%x", &eid_int[0], &eid_int[1], &eid_int[2],
if (sscanf(s, "%2x:%2x:%2x:%2x:%2x:%2x", &eid_int[0], &eid_int[1], &eid_int[2],
&eid_int[3], &eid_int[4], &eid_int[5]) != 6)
return -1;

View File

@ -2807,7 +2807,7 @@ static int parse_variable_name(char *var, int *offset, int *length, int *isfunc)
parens--;
} else if (*var == ':' && parens == 0) {
*var++ = '\0';
sscanf(var, "%d:%d", offset, length);
sscanf(var, "%30d:%30d", offset, length);
return 1; /* offset:length valid */
}
}
@ -7079,7 +7079,7 @@ static int lookup_name(const char *s, const char * const names[], int max)
}
/* Allow months and weekdays to be specified as numbers, as well */
if (sscanf(s, "%d", &i) == 1 && i >= 1 && i <= max) {
if (sscanf(s, "%2d", &i) == 1 && i >= 1 && i <= max) {
/* What the array offset would have been: "1" would be at offset 0 */
return i - 1;
}
@ -7155,7 +7155,7 @@ static void get_timerange(struct ast_timing *i, char *times)
/* Otherwise expect a range */
while ((part = strsep(&times, "&"))) {
if (!(endpart = strchr(part, '-'))) {
if (sscanf(part, "%d:%d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
if (sscanf(part, "%2d:%2d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
ast_log(LOG_WARNING, "%s isn't a valid time.\n", part);
continue;
}
@ -7171,11 +7171,11 @@ static void get_timerange(struct ast_timing *i, char *times)
ast_log(LOG_WARNING, "Invalid time range starting with '%s-'.\n", part);
continue;
}
if (sscanf(part, "%d:%d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
if (sscanf(part, "%2d:%2d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
ast_log(LOG_WARNING, "'%s' isn't a valid start time.\n", part);
continue;
}
if (sscanf(endpart, "%d:%d", &endh, &endm) != 2 || endh < 0 || endh > 23 || endm < 0 || endm > 59) {
if (sscanf(endpart, "%2d:%2d", &endh, &endm) != 2 || endh < 0 || endh > 23 || endm < 0 || endm > 59) {
ast_log(LOG_WARNING, "'%s' isn't a valid end time.\n", endpart);
continue;
}
@ -8711,7 +8711,7 @@ static void wait_for_hangup(struct ast_channel *chan, const void *data)
double waitsec;
int waittime;
if (ast_strlen_zero(data) || (sscanf(data, "%lg", &waitsec) != 1) || (waitsec < 0))
if (ast_strlen_zero(data) || (sscanf(data, "%30lg", &waitsec) != 1) || (waitsec < 0))
waitsec = -1;
if (waitsec > -1) {
waittime = waitsec * 1000.0;
@ -9465,7 +9465,7 @@ int pbx_checkcondition(const char *condition)
int res;
if (ast_strlen_zero(condition)) { /* NULL or empty strings are false */
return 0;
} else if (sscanf(condition, "%d", &res) == 1) { /* Numbers are evaluated for truth */
} else if (sscanf(condition, "%30d", &res) == 1) { /* Numbers are evaluated for truth */
return res;
} else { /* Strings are true */
return 1;
@ -9880,7 +9880,7 @@ static int pbx_parseable_goto(struct ast_channel *chan, const char *goto_string,
mode = -1;
pri++;
}
if (sscanf(pri, "%d", &ipri) != 1) {
if (sscanf(pri, "%30d", &ipri) != 1) {
if ((ipri = ast_findlabel_extension(chan, context ? context : chan->context, exten ? exten : chan->exten,
pri, chan->cid.cid_num)) < 1) {
ast_log(LOG_WARNING, "Priority '%s' must be a number > 0, or valid label\n", pri);

View File

@ -229,7 +229,7 @@ static char *timing_test(struct ast_cli_entry *e, int cmd, struct ast_cli_args *
if (a->argc == 3) {
unsigned int rate;
if (sscanf(a->argv[2], "%u", &rate) == 1) {
if (sscanf(a->argv[2], "%30u", &rate) == 1) {
test_rate = rate;
} else {
ast_cli(a->fd, "Invalid rate '%s', using default of %u\n", a->argv[2], test_rate);

View File

@ -1826,7 +1826,7 @@ int ast_get_timeval(const char *src, struct timeval *dst, struct timeval _defaul
return -1;
/* only integer at the moment, but one day we could accept more formats */
if (sscanf(src, "%Lf%n", &dtv, &scanned) > 0) {
if (sscanf(src, "%30Lf%n", &dtv, &scanned) > 0) {
dst->tv_sec = dtv;
dst->tv_usec = (dtv - dst->tv_sec) * 1000000.0;
if (consumed)
@ -1853,7 +1853,7 @@ int ast_get_time_t(const char *src, time_t *dst, time_t _default, int *consumed)
return -1;
/* only integer at the moment, but one day we could accept more formats */
if (sscanf(src, "%ld%n", &t, &scanned) == 1) {
if (sscanf(src, "%30ld%n", &t, &scanned) == 1) {
*dst = t;
if (consumed)
*consumed = scanned;
@ -2012,7 +2012,7 @@ int ast_parse_digest(const char *digest, struct ast_http_digest *d, int request,
d->qop = 1;
} else if (!strcasecmp(key, "nc")) {
unsigned long u;
if (sscanf(val, "%lx", &u) != 1) {
if (sscanf(val, "%30lx", &u) != 1) {
ast_log(LOG_WARNING, "Incorrect Digest nc value: \"%s\".\n", val);
return -1;
}

View File

@ -946,7 +946,7 @@ static char *handle_cli_dialplan_add_extension(struct ast_cli_entry *e, int cmd,
if (!strcmp(prior, "hint")) {
iprior = PRIORITY_HINT;
} else {
if (sscanf(prior, "%d", &iprior) != 1) {
if (sscanf(prior, "%30d", &iprior) != 1) {
ast_cli(a->fd, "'%s' is not a valid priority\n", prior);
prior = NULL;
}
@ -1485,7 +1485,7 @@ process_extension:
} else {
ast_log(LOG_WARNING, "Can't use 'same' priority on the first entry!\n");
}
} else if (sscanf(pri, "%d", &ipri) != 1 &&
} else if (sscanf(pri, "%30d", &ipri) != 1 &&
(ipri = ast_findlabel_extension2(NULL, con, realext, pri, cidmatch)) < 1) {
ast_log(LOG_WARNING, "Invalid priority/label '%s' at line %d\n", pri, v->lineno);
ipri = 0;
@ -1638,9 +1638,9 @@ static void pbx_load_users(void)
c = dahdicopy;
chan = strsep(&c, ",");
while (chan) {
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 {

View File

@ -475,7 +475,7 @@ static int get_mapping_weight(struct dundi_mapping *map)
buf[0] = 0;
if (map->weightstr) {
pbx_substitute_variables_helper(NULL, map->weightstr, buf, sizeof(buf) - 1);
if (sscanf(buf, "%d", &map->_weight) != 1)
if (sscanf(buf, "%30d", &map->_weight) != 1)
map->_weight = MAX_WEIGHT;
}
@ -1088,7 +1088,7 @@ static int cache_lookup_internal(time_t now, struct dundi_request *req, char *ke
if (expiration > 0) {
ast_debug(1, "Found cache expiring in %d seconds!\n", expiration);
ptr += length + 1;
while((sscanf(ptr, "%d/%d/%d/%n", &(flags.flags), &weight, &tech, &length) == 3)) {
while((sscanf(ptr, "%30d/%30d/%30d/%n", &(flags.flags), &weight, &tech, &length) == 3)) {
ptr += length;
term = strchr(ptr, '|');
if (term) {
@ -4036,7 +4036,7 @@ static int dundi_result_read(struct ast_channel *chan, const char *cmd, char *da
goto finish;
}
if (sscanf(args.resultnum, "%u", &num) != 1) {
if (sscanf(args.resultnum, "%30u", &num) != 1) {
ast_log(LOG_ERROR, "Invalid value '%s' for resultnum to DUNDIRESULT!\n",
args.resultnum);
goto finish;
@ -4200,7 +4200,7 @@ static void build_mapping(const char *name, const char *value)
} else if (x >= 4) {
ast_copy_string(map->dcontext, name, sizeof(map->dcontext));
ast_copy_string(map->lcontext, fields[0], sizeof(map->lcontext));
if ((sscanf(fields[1], "%d", &map->_weight) == 1) && (map->_weight >= 0) && (map->_weight <= MAX_WEIGHT)) {
if ((sscanf(fields[1], "%30d", &map->_weight) == 1) && (map->_weight >= 0) && (map->_weight <= MAX_WEIGHT)) {
ast_copy_string(map->dest, fields[3], sizeof(map->dest));
if ((map->tech = str2tech(fields[2])))
map->dead = 0;
@ -4302,7 +4302,7 @@ static void populate_addr(struct dundi_peer *peer, dundi_eid *eid)
if (c) {
*c = '\0';
c++;
if (sscanf(c, "%d:%d", &port, &expire) == 2) {
if (sscanf(c, "%5d:%30d", &port, &expire) == 2) {
/* Got it! */
inet_aton(data, &peer->addr.sin_addr);
peer->addr.sin_family = AF_INET;
@ -4399,7 +4399,7 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode
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 dundi.conf\n",
ast_eid_to_str(eid_str, sizeof(eid_str), &peer->eid), v->lineno);
peer->maxms = 0;
@ -4637,14 +4637,14 @@ static int set_config(char *config_file, struct sockaddr_in* sin, int reload)
} else if (!strcasecmp(v->name, "authdebug")) {
authdebug = ast_true(v->value);
} else if (!strcasecmp(v->name, "ttl")) {
if ((sscanf(v->value, "%d", &x) == 1) && (x > 0) && (x < DUNDI_DEFAULT_TTL)) {
if ((sscanf(v->value, "%30d", &x) == 1) && (x > 0) && (x < DUNDI_DEFAULT_TTL)) {
dundi_ttl = x;
} else {
ast_log(LOG_WARNING, "'%s' is not a valid TTL at line %d, must be number from 1 to %d\n",
v->value, v->lineno, DUNDI_DEFAULT_TTL);
}
} else if (!strcasecmp(v->name, "autokill")) {
if (sscanf(v->value, "%d", &x) == 1) {
if (sscanf(v->value, "%30d", &x) == 1) {
if (x >= 0)
global_autokilltimeout = x;
else
@ -4679,7 +4679,7 @@ static int set_config(char *config_file, struct sockaddr_in* sin, int reload)
} else if (!strcasecmp(v->name, "storehistory")) {
global_storehistory = ast_true(v->value);
} else if (!strcasecmp(v->name, "cachetime")) {
if ((sscanf(v->value, "%d", &x) == 1)) {
if ((sscanf(v->value, "%30d", &x) == 1)) {
dundi_cache_time = x;
} else {
ast_log(LOG_WARNING, "'%s' is not a valid cache time at line %d. Using default value '%d'.\n",

View File

@ -120,7 +120,7 @@ static void loopback_parse(char **newexten, char **newcontext, int *priority, ch
if (!ast_strlen_zero(con))
*newcontext = con;
if (!ast_strlen_zero(pri))
sscanf(pri, "%d", priority);
sscanf(pri, "%30d", priority);
}
static int loopback_exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)

View File

@ -172,7 +172,7 @@ static int apply_outgoing(struct outgoing *o, char *fn, FILE *f)
} else if (!strcasecmp(buf, "data")) {
ast_string_field_set(o, data, c);
} else if (!strcasecmp(buf, "maxretries")) {
if (sscanf(c, "%d", &o->maxretries) != 1) {
if (sscanf(c, "%30d", &o->maxretries) != 1) {
ast_log(LOG_WARNING, "Invalid max retries at line %d of %s\n", lineno, fn);
o->maxretries = 0;
}
@ -183,24 +183,24 @@ static int apply_outgoing(struct outgoing *o, char *fn, FILE *f)
} else if (!strcasecmp(buf, "extension")) {
ast_string_field_set(o, exten, c);
} else if (!strcasecmp(buf, "priority")) {
if ((sscanf(c, "%d", &o->priority) != 1) || (o->priority < 1)) {
if ((sscanf(c, "%30d", &o->priority) != 1) || (o->priority < 1)) {
ast_log(LOG_WARNING, "Invalid priority at line %d of %s\n", lineno, fn);
o->priority = 1;
}
} else if (!strcasecmp(buf, "retrytime")) {
if ((sscanf(c, "%d", &o->retrytime) != 1) || (o->retrytime < 1)) {
if ((sscanf(c, "%30d", &o->retrytime) != 1) || (o->retrytime < 1)) {
ast_log(LOG_WARNING, "Invalid retrytime at line %d of %s\n", lineno, fn);
o->retrytime = 300;
}
} else if (!strcasecmp(buf, "waittime")) {
if ((sscanf(c, "%d", &o->waittime) != 1) || (o->waittime < 1)) {
if ((sscanf(c, "%30d", &o->waittime) != 1) || (o->waittime < 1)) {
ast_log(LOG_WARNING, "Invalid waittime at line %d of %s\n", lineno, fn);
o->waittime = 45;
}
} else if (!strcasecmp(buf, "retry")) {
o->retries++;
} else if (!strcasecmp(buf, "startretry")) {
if (sscanf(c, "%ld", &o->callingpid) != 1) {
if (sscanf(c, "%30ld", &o->callingpid) != 1) {
ast_log(LOG_WARNING, "Unable to retrieve calling PID!\n");
o->callingpid = 0;
}

View File

@ -860,12 +860,12 @@ static void check_timerange(pval *p)
p->filename, p->startline, p->endline, p->u1.str);
warns++;
}
if (sscanf(times, "%d:%d", &s1, &s2) != 2) {
if (sscanf(times, "%2d:%2d", &s1, &s2) != 2) {
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The start time (%s) isn't quite right!\n",
p->filename, p->startline, p->endline, times);
warns++;
}
if (sscanf(e, "%d:%d", &e1, &e2) != 2) {
if (sscanf(e, "%2d:%2d", &e1, &e2) != 2) {
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end time (%s) isn't quite right!\n",
p->filename, p->startline, p->endline, times);
warns++;
@ -957,7 +957,7 @@ static void check_day(pval *DAY)
c++;
}
/* Find the start */
if (sscanf(day, "%d", &s) != 1) {
if (sscanf(day, "%2d", &s) != 1) {
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The start day of month (%s) must be a number!\n",
DAY->filename, DAY->startline, DAY->endline, day);
warns++;
@ -969,7 +969,7 @@ static void check_day(pval *DAY)
}
s--;
if (c) {
if (sscanf(c, "%d", &e) != 1) {
if (sscanf(c, "%2d", &e) != 1) {
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The end day of month (%s) must be a number!\n",
DAY->filename, DAY->startline, DAY->endline, c);
warns++;

View File

@ -1606,7 +1606,7 @@ static int handle_waitfordigit(struct ast_channel *chan, AGI *agi, int argc, con
if (argc != 4)
return RESULT_SHOWUSAGE;
if (sscanf(argv[3], "%d", &to) != 1)
if (sscanf(argv[3], "%30d", &to) != 1)
return RESULT_SHOWUSAGE;
res = ast_waitfordigit_full(chan, to, agi->audio, agi->ctrl);
ast_agi_send(agi->fd, chan, "200 result=%d\n", res);
@ -1725,7 +1725,7 @@ static int handle_controlstreamfile(struct ast_channel *chan, AGI *agi, int argc
stop = argv[4];
}
if ((argc > 5) && (sscanf(argv[5], "%d", &skipms) != 1)) {
if ((argc > 5) && (sscanf(argv[5], "%30d", &skipms) != 1)) {
return RESULT_SHOWUSAGE;
}
@ -1761,7 +1761,7 @@ static int handle_streamfile(struct ast_channel *chan, AGI *agi, int argc, const
if (argv[3])
edigits = argv[3];
if ((argc > 4) && (sscanf(argv[4], "%ld", &sample_offset) != 1))
if ((argc > 4) && (sscanf(argv[4], "%30ld", &sample_offset) != 1))
return RESULT_SHOWUSAGE;
if (!(fs = ast_openstream(chan, argv[2], chan->language))) {
@ -1873,7 +1873,7 @@ static int handle_saynumber(struct ast_channel *chan, AGI *agi, int argc, const
if (argc < 4 || argc > 5)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%d", &num) != 1)
if (sscanf(argv[2], "%30d", &num) != 1)
return RESULT_SHOWUSAGE;
res = ast_say_number_full(chan, num, argv[3], chan->language, argc > 4 ? argv[4] : NULL, agi->audio, agi->ctrl);
if (res == 1)
@ -1888,7 +1888,7 @@ static int handle_saydigits(struct ast_channel *chan, AGI *agi, int argc, const
if (argc != 4)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%d", &num) != 1)
if (sscanf(argv[2], "%30d", &num) != 1)
return RESULT_SHOWUSAGE;
res = ast_say_digit_str_full(chan, argv[2], argv[3], chan->language, agi->audio, agi->ctrl);
@ -1918,7 +1918,7 @@ static int handle_saydate(struct ast_channel *chan, AGI *agi, int argc, const ch
if (argc != 4)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%d", &num) != 1)
if (sscanf(argv[2], "%30d", &num) != 1)
return RESULT_SHOWUSAGE;
res = ast_say_date(chan, num, argv[3], chan->language);
if (res == 1)
@ -1933,7 +1933,7 @@ static int handle_saytime(struct ast_channel *chan, AGI *agi, int argc, const ch
if (argc != 4)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%d", &num) != 1)
if (sscanf(argv[2], "%30d", &num) != 1)
return RESULT_SHOWUSAGE;
res = ast_say_time(chan, num, argv[3], chan->language);
if (res == 1)
@ -2043,7 +2043,7 @@ static int handle_setpriority(struct ast_channel *chan, AGI *agi, int argc, cons
if (argc != 3)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%d", &pri) != 1) {
if (sscanf(argv[2], "%30d", &pri) != 1) {
if ((pri = ast_findlabel_extension(chan, chan->context, chan->exten, argv[2], chan->cid.cid_num)) < 1)
return RESULT_SHOWUSAGE;
}
@ -2074,7 +2074,7 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, const
if (argc < 6)
return RESULT_SHOWUSAGE;
if (sscanf(argv[5], "%d", &ms) != 1)
if (sscanf(argv[5], "%30d", &ms) != 1)
return RESULT_SHOWUSAGE;
if (argc > 6)
@ -2115,7 +2115,7 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, const
/* backward compatibility, if no offset given, arg[6] would have been
* caught below and taken to be a beep, else if it is a digit then it is a
* offset */
if ((argc >6) && (sscanf(argv[6], "%ld", &sample_offset) != 1) && (!strchr(argv[6], '=')))
if ((argc >6) && (sscanf(argv[6], "%30ld", &sample_offset) != 1) && (!strchr(argv[6], '=')))
res = ast_streamfile(chan, "beep", chan->language);
if ((argc > 7) && (!strchr(argv[7], '=')))
@ -2237,7 +2237,7 @@ static int handle_autohangup(struct ast_channel *chan, AGI *agi, int argc, const
if (argc != 3)
return RESULT_SHOWUSAGE;
if (sscanf(argv[2], "%lf", &timeout) != 1)
if (sscanf(argv[2], "%30lf", &timeout) != 1)
return RESULT_SHOWUSAGE;
if (timeout < 0)
timeout = 0;
@ -2437,7 +2437,7 @@ static int handle_verbose(struct ast_channel *chan, AGI *agi, int argc, const ch
return RESULT_SHOWUSAGE;
if (argv[2])
sscanf(argv[2], "%d", &level);
sscanf(argv[2], "%30d", &level);
ast_verb(level, "%s: %s\n", chan->data, argv[1]);

View File

@ -270,7 +270,7 @@ static int update_curl(const char *url, const char *unused, const char *keyfield
while (*stringp <= ' ') {
stringp++;
}
sscanf(stringp, "%d", &rowcount);
sscanf(stringp, "%30d", &rowcount);
if (rowcount >= 0) {
return (int)rowcount;
@ -334,7 +334,7 @@ static int update2_curl(const char *url, const char *unused, va_list ap)
while (*stringp <= ' ') {
stringp++;
}
sscanf(stringp, "%d", &rowcount);
sscanf(stringp, "%30d", &rowcount);
if (rowcount >= 0) {
return (int)rowcount;
@ -395,7 +395,7 @@ static int store_curl(const char *url, const char *unused, va_list ap)
while (*stringp <= ' ') {
stringp++;
}
sscanf(stringp, "%d", &rowcount);
sscanf(stringp, "%30d", &rowcount);
if (rowcount >= 0) {
return rowcount;
@ -461,7 +461,7 @@ static int destroy_curl(const char *url, const char *unused, const char *keyfiel
while (*stringp <= ' ') {
stringp++;
}
sscanf(stringp, "%d", &rowcount);
sscanf(stringp, "%30d", &rowcount);
if (rowcount >= 0) {
return (int)rowcount;

View File

@ -1597,7 +1597,7 @@ int parse_config(void)
if ((s = ast_variable_retrieve(config, "_general", "url"))) {
ast_copy_string(url, s, sizeof(url));
} else if ((host = ast_variable_retrieve(config, "_general", "host"))) {
if (!(s = ast_variable_retrieve(config, "_general", "port")) || sscanf(s, "%d", &port) != 1) {
if (!(s = ast_variable_retrieve(config, "_general", "port")) || sscanf(s, "%5d", &port) != 1 || port > 65535) {
ast_log(LOG_NOTICE, "No directory port found, using 389 as default.\n");
port = 389;
}
@ -1618,7 +1618,7 @@ int parse_config(void)
if (!(s = ast_variable_retrieve(config, "_general", "version")) && !(s = ast_variable_retrieve(config, "_general", "protocol"))) {
ast_log(LOG_NOTICE, "No explicit LDAP version found, using 3 as default.\n");
version = 3;
} else if (sscanf(s, "%d", &version) != 1 || version < 1 || version > 6) {
} else if (sscanf(s, "%30d", &version) != 1 || version < 1 || version > 6) {
ast_log(LOG_WARNING, "Invalid LDAP version '%s', using 3 as default.\n", s);
version = 3;
}

View File

@ -175,10 +175,10 @@ static struct tables *find_table(const char *tablename)
if (strcmp(flen, "-1") == 0) {
/* Some types, like chars, have the length stored in a different field */
flen = PQgetvalue(result, i, 5);
sscanf(flen, "%d", &column->len);
sscanf(flen, "%30d", &column->len);
column->len -= 4;
} else {
sscanf(flen, "%d", &column->len);
sscanf(flen, "%30d", &column->len);
}
column->name = (char *)column + sizeof(*column);
column->type = (char *)column + sizeof(*column) + strlen(fname) + 1;

View File

@ -805,7 +805,7 @@ static int cdr_handler(struct ast_cdr *cdr)
if (!tmp) {
continue;
}
if (sscanf(tmp, "%d", &scannum) == 1) {
if (sscanf(tmp, "%30d", &scannum) == 1) {
ast_str_append(&sql1, 0, "%s%s", first ? "" : ",", col->name);
ast_str_append(&sql2, 0, "%s%d", first ? "" : ",", scannum);
}

View File

@ -320,7 +320,7 @@ static int http_post_callback(struct ast_tcptls_session_instance *ser, const str
cookies = ast_http_get_cookies(headers);
for (var = cookies; var; var = var->next) {
if (!strcasecmp(var->name, "mansession_id")) {
sscanf(var->value, "%lx", &ident);
sscanf(var->value, "%30lx", &ident);
break;
}
}
@ -347,7 +347,7 @@ static int http_post_callback(struct ast_tcptls_session_instance *ser, const str
fprintf(f, "%s: %s\r\n", var->name, var->value);
if (!strcasecmp(var->name, "Content-Length")) {
if ((sscanf(var->value, "%u", &content_len)) != 1) {
if ((sscanf(var->value, "%30u", &content_len)) != 1) {
ast_log(LOG_ERROR, "Invalid Content-Length in POST request!\n");
fclose(f);
ast_http_error(ser, 500, "Internal server error", "Invalid Content-Length in POST request!");

View File

@ -179,7 +179,7 @@ static char *handle_cli_ulimit(struct ast_cli_entry *e, int cmd, struct ast_cli_
return CLI_FAILURE;
}
sscanf(a->argv[2], "%d", &x);
sscanf(a->argv[2], "%30d", &x);
rlimit.rlim_max = rlimit.rlim_cur = x;
setrlimit(resource, &rlimit);
return CLI_SUCCESS;

View File

@ -651,7 +651,7 @@ static int play_moh_exec(struct ast_channel *chan, const char *data)
AST_STANDARD_APP_ARGS(args, parse);
if (!ast_strlen_zero(args.duration)) {
if (sscanf(args.duration, "%d", &timeout) == 1) {
if (sscanf(args.duration, "%30d", &timeout) == 1) {
timeout *= 1000;
} else {
ast_log(LOG_WARNING, "Invalid MusicOnHold duration '%s'. Will wait indefinitely.\n", args.duration);

View File

@ -771,7 +771,7 @@ static int load_odbc_config(void)
if (ast_false(v->value))
pooling = 1;
} else if (!strcasecmp(v->name, "limit")) {
sscanf(v->value, "%d", &limit);
sscanf(v->value, "%30d", &limit);
if (ast_true(v->value) && !limit) {
ast_log(LOG_WARNING, "Limit should be a number, not a boolean: '%s'. Setting limit to 1023 for ODBC class '%s'.\n", v->value, cat);
limit = 1023;
@ -781,7 +781,7 @@ static int load_odbc_config(void)
break;
}
} else if (!strcasecmp(v->name, "idlecheck")) {
sscanf(v->value, "%d", &idlecheck);
sscanf(v->value, "%30u", &idlecheck);
} else if (!strcasecmp(v->name, "enabled")) {
enabled = ast_true(v->value);
} else if (!strcasecmp(v->name, "pre-connect")) {

View File

@ -1001,7 +1001,7 @@ static int smdi_load(int reload)
baud_rate = B9600;
}
} else if (!strcasecmp(v->name, "msdstrip")) {
if (!sscanf(v->value, "%d", &msdstrip)) {
if (!sscanf(v->value, "%30d", &msdstrip)) {
ast_log(LOG_NOTICE, "Invalid msdstrip value in %s (line %d), using default\n", config_file, v->lineno);
msdstrip = 0;
} else if (0 > msdstrip || msdstrip > 9) {
@ -1009,7 +1009,7 @@ static int smdi_load(int reload)
msdstrip = 0;
}
} else if (!strcasecmp(v->name, "msgexpirytime")) {
if (!sscanf(v->value, "%ld", &msg_expiry)) {
if (!sscanf(v->value, "%30ld", &msg_expiry)) {
ast_log(LOG_NOTICE, "Invalid msgexpirytime value in %s (line %d), using default\n", config_file, v->lineno);
msg_expiry = SMDI_MSG_EXPIRY_TIME;
}
@ -1142,7 +1142,7 @@ static int smdi_load(int reload)
continue;
}
} else if (!strcasecmp(v->name, "pollinginterval")) {
if (sscanf(v->value, "%u", &mwi_monitor.polling_interval) != 1) {
if (sscanf(v->value, "%30u", &mwi_monitor.polling_interval) != 1) {
ast_log(LOG_ERROR, "Invalid value for pollinginterval: %s\n", v->value);
mwi_monitor.polling_interval = DEFAULT_POLLING_INTERVAL;
}
@ -1263,7 +1263,7 @@ static int smdi_msg_retrieve_read(struct ast_channel *chan, const char *cmd, cha
}
if (!ast_strlen_zero(args.timeout)) {
if (sscanf(args.timeout, "%u", &timeout) != 1) {
if (sscanf(args.timeout, "%30u", &timeout) != 1) {
ast_log(LOG_ERROR, "'%s' is not a valid timeout\n", args.timeout);
timeout = SMDI_RETRIEVE_TIMEOUT_DEFAULT;
}

View File

@ -808,7 +808,7 @@ static u_char *ast_var_Version(struct variable *vp, oid *name, size_t *length,
return (u_char *)version;
}
case ASTVERTAG:
sscanf(ast_get_version_num(), "%lu", &long_ret);
sscanf(ast_get_version_num(), "%30lu", &long_ret);
return (u_char *)&long_ret;
default:
break;

View File

@ -3149,7 +3149,7 @@ static int lookup_name(const char *s, char *const names[], int max)
}
/* Allow months and weekdays to be specified as numbers, as well */
if (sscanf(s, "%d", &i) == 1 && i >= 1 && i <= max) {
if (sscanf(s, "%2d", &i) == 1 && i >= 1 && i <= max) {
/* What the array offset would have been: "1" would be at offset 0 */
return i - 1;
}
@ -3226,7 +3226,7 @@ static void get_timerange(struct ast_timing *i, char *times)
/* Otherwise expect a range */
while ((part = strsep(&times, "&"))) {
if (!(endpart = strchr(part, '-'))) {
if (sscanf(part, "%d:%d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
if (sscanf(part, "%2d:%2d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
ast_log(LOG_WARNING, "%s isn't a valid time.\n", part);
continue;
}
@ -3242,11 +3242,11 @@ static void get_timerange(struct ast_timing *i, char *times)
ast_log(LOG_WARNING, "Invalid time range starting with '%s-'.\n", part);
continue;
}
if (sscanf(part, "%d:%d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
if (sscanf(part, "%2d:%2d", &st_h, &st_m) != 2 || st_h < 0 || st_h > 23 || st_m < 0 || st_m > 59) {
ast_log(LOG_WARNING, "'%s' isn't a valid start time.\n", part);
continue;
}
if (sscanf(endpart, "%d:%d", &endh, &endm) != 2 || endh < 0 || endh > 23 || endm < 0 || endm > 59) {
if (sscanf(endpart, "%2d:%2d", &endh, &endm) != 2 || endh < 0 || endh > 23 || endm < 0 || endm > 59) {
ast_log(LOG_WARNING, "'%s' isn't a valid end time.\n", endpart);
continue;
}
@ -5541,7 +5541,7 @@ static int parse_variable_name(char *var, int *offset, int *length, int *isfunc)
parens--;
} else if (*var == ':' && parens == 0) {
*var++ = '\0';
sscanf(var, "%d:%d", offset, length);
sscanf(var, "%30d:%30d", offset, length);
return 1; /* offset:length valid */
}
}
@ -5945,7 +5945,7 @@ static int pbx_load_config(const char *config_file)
ipri = lastpri;
else
ast_log(LOG_WARNING, "Can't use 'same' priority on the first entry!\n");
} else if (sscanf(pri, "%d", &ipri) != 1 &&
} else if (sscanf(pri, "%30d", &ipri) != 1 &&
(ipri = ast_findlabel_extension2(NULL, con, realext, pri, cidmatch)) < 1) {
ast_log(LOG_WARNING, "Invalid priority/label '%s' at line %d\n", pri, v->lineno);
ipri = 0;

View File

@ -355,7 +355,7 @@ int parsetime(char *string, int *result)
double temp;
char m, s, end;
k = sscanf(string, "%lf%c%c%c", &temp, &m, &s, &end);
k = sscanf(string, "%30lf%1c%1c%1c", &temp, &m, &s, &end);
switch (k)
{
case 0: case EOF: case 4:
@ -396,7 +396,7 @@ int parsefreq(char *string, double *result)
double temp;
char m, s, end;
k = sscanf(string, "%lf%c%c%c", &temp, &m, &s, &end);
k = sscanf(string, "%30lf%1c%1c%1c", &temp, &m, &s, &end);
switch (k)
{
case 0: case EOF: case 2: case 4:
@ -476,7 +476,7 @@ int parseintarg( int argcount, char *args[], char *string, int *result)
if ((i = findoption( argcount, args, string)) > 0)
{
switch (sscanf(args[i] + 1 + strlen( string),
"%d%c", &temp, &c))
"%30d%1c", &temp, &c))
{
case 0: case EOF: case 2:
argerrornum(args[i]+1, ME_NOINT);
@ -510,7 +510,7 @@ int parsedoublearg( int argcount, char *args[], char *string, double *result)
if ((i = findoption( argcount, args, string)) > 0)
{
switch (sscanf(args[i] + 1 + strlen( string), "%lf%c", &temp, &end))
switch (sscanf(args[i] + 1 + strlen( string), "%30lf%1c", &temp, &end))
{
case 0: case EOF: case 2:
argerrornum(args[i]+1, ME_NODOUBLE);
@ -545,7 +545,7 @@ int parsevolarg( int argcount, char *args[], char *string, double *result)
if ((i = findoption( argcount, args, string)) > 0)
{
switch (sscanf(args[i] + 1 + strlen( string),
"%lf%c%c%c", &vol, &sbd, &sbb, &end))
"%30lf%1c%1c%1c", &vol, &sbd, &sbb, &end))
{
case 0: case EOF: case 4:
weird = TRUE;
@ -593,7 +593,7 @@ int parsevolume(char *s, double *result)
char sbd, sbb, end;
*result = 1.0;
k = sscanf(s, "%lf%c%c%c", result, &sbd, &sbb, &end);
k = sscanf(s, "%30lf%1c%1c%1c", result, &sbd, &sbb, &end);
switch (k)
{
case 0:

Some files were not shown because too many files have changed in this diff Show More