Fix some parsing issues in add_exten_to_pattern_tree().
authorRichard Mudgett <rmudgett@digium.com>
Fri, 9 Dec 2011 01:33:29 +0000 (01:33 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 9 Dec 2011 01:33:29 +0000 (01:33 +0000)
commit01d3fd2167cba91a2a56902b082153f08b921248
tree2c0a8ccc218a56a75faedf64b042a75a957dd69a
parent463bfdb4009ce23852be8e872ac86c595933cae4
Fix some parsing issues in add_exten_to_pattern_tree().

* Simplify compare_char() and avoid potential sign extension issue.

* Fix infinite loop in add_exten_to_pattern_tree() handling of character
set escape handling.

* Added buffer overflow checks in add_exten_to_pattern_tree() character
set collection.

* Made ignore empty character sets.

* Added escape character handling to end-of-range character in character
sets.  This has a slight change in behavior if the end-of-range character
is an escape character.  You must now escape it.

* Fix potential sign extension issue when expanding character set ranges.

* Made remove duplicated characters from character sets.  The duplicate
characters lower extension matching priority and prevent duplicate
extension detection.

* Fix escape character handling when the escape character is trying to
escape the end-of-string.  We could have continued processing characters
after the end of the exten string.  We could have added the previous
character to the pattern matching tree incorrectly.

(closes issue ASTERISK-18909)
Reported by: Luke-Jr
........

Merged revisions 347811 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 347812 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@347813 65c4cc65-6c06-0410-ace0-fbb531ad65f3
main/pbx.c