RetryDial should accept a 0 argument, but it does not, because atoi does not distinguish between 0 and error (closes issue #10106)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@73052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2007-07-03 12:34:14 +00:00
parent 2676d6c595
commit ff1c0bfa20

View File

@@ -1706,7 +1706,7 @@ static int retrydial_exec(struct ast_channel *chan, void *data)
if ((dialdata = strchr(announce, '|'))) {
*dialdata = '\0';
dialdata++;
if ((sleep = atoi(dialdata))) {
if (sscanf(dialdata, "%d", &sleep) == 1) {
sleep *= 1000;
} else {
ast_log(LOG_ERROR, "%s requires the numerical argument <sleep>\n",rapp);
@@ -1716,7 +1716,7 @@ static int retrydial_exec(struct ast_channel *chan, void *data)
if ((dialdata = strchr(dialdata, '|'))) {
*dialdata = '\0';
dialdata++;
if (!(loops = atoi(dialdata))) {
if (sscanf(dialdata, "%d", &loops) != 1) {
ast_log(LOG_ERROR, "%s requires the numerical argument <loops>\n",rapp);
LOCAL_USER_REMOVE(u);
return -1;