[asterisk-commits] rmudgett: branch 1.6.1 r203057 - in /branches/1.6.1: ./ channels/chan_dahdi.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jun 24 16:22:15 CDT 2009
Author: rmudgett
Date: Wed Jun 24 16:22:11 2009
New Revision: 203057
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=203057
Log:
Merged revisions 203037 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r203037 | rmudgett | 2009-06-24 16:08:55 -0500 (Wed, 24 Jun 2009) | 15 lines
Merged revisions 203036 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r203036 | rmudgett | 2009-06-24 16:01:43 -0500 (Wed, 24 Jun 2009) | 8 lines
Improved chan_dahdi.conf pritimer error checking.
Valid format is: pritimer=timer_name,timer_value
* Fixed segfault if the ',' is missing.
* Completely check the range returned by pri_timer2idx() to prevent
possible access outside array bounds.
........
................
Modified:
branches/1.6.1/ (props changed)
branches/1.6.1/channels/chan_dahdi.c
Propchange: branches/1.6.1/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.1/channels/chan_dahdi.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.1/channels/chan_dahdi.c?view=diff&rev=203057&r1=203056&r2=203057
==============================================================================
--- branches/1.6.1/channels/chan_dahdi.c (original)
+++ branches/1.6.1/channels/chan_dahdi.c Wed Jun 24 16:22:11 2009
@@ -14761,22 +14761,34 @@
#endif
} else if (!strcasecmp(v->name, "pritimer")) {
#ifdef PRI_GETSET_TIMERS
- char tmp[20], *timerc, *c = tmp;
- int timer, timeridx;
+ char tmp[20];
+ char *timerc;
+ char *c;
+ int timer;
+ int timeridx;
+
ast_copy_string(tmp, v->value, sizeof(tmp));
+ c = tmp;
timerc = strsep(&c, ",");
- if (timerc) {
+ if (!ast_strlen_zero(timerc) && !ast_strlen_zero(c)) {
+ timeridx = pri_timer2idx(timerc);
timer = atoi(c);
- if (!timer)
- ast_log(LOG_WARNING, "'%s' is not a valid value for an ISDN timer at line %d.\n", timerc, v->lineno);
- else {
- if ((timeridx = pri_timer2idx(timerc)) >= 0)
- pritimers[timeridx] = timer;
- else
- ast_log(LOG_WARNING, "'%s' is not a valid ISDN timer at line %d.\n", timerc, v->lineno);
+ if (timeridx < 0 || PRI_MAX_TIMERS <= timeridx) {
+ ast_log(LOG_WARNING,
+ "'%s' is not a valid ISDN timer at line %d.\n", timerc,
+ v->lineno);
+ } else if (!timer) {
+ ast_log(LOG_WARNING,
+ "'%s' is not a valid value for ISDN timer '%s' at line %d.\n",
+ c, timerc, v->lineno);
+ } else {
+ pritimers[timeridx] = timer;
}
- } else
- ast_log(LOG_WARNING, "'%s' is not a valid ISDN timer configuration string at line %d.\n", v->value, v->lineno);
+ } else {
+ ast_log(LOG_WARNING,
+ "'%s' is not a valid ISDN timer configuration string at line %d.\n",
+ v->value, v->lineno);
+ }
} else if (!strcasecmp(v->name, "facilityenable")) {
confp->pri.facilityenable = ast_true(v->value);
More information about the asterisk-commits
mailing list