Merged revisions 180532 via svnmerge from
authorDavid Vossel <dvossel@digium.com>
Fri, 6 Mar 2009 17:26:38 +0000 (17:26 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 6 Mar 2009 17:26:38 +0000 (17:26 +0000)
commit02de67c2322ed18bd0ecde0eaebc44a960f0cd74
tree1970d5641dea7f1b031bb8a5bd4c37cc69a4b003
parent96405af1a8b1626367936d2ddc0215c3e7afa32d
Merged revisions 180532 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r180532 | dvossel | 2009-03-06 11:19:55 -0600 (Fri, 06 Mar 2009) | 9 lines

  Fix handling of backreferences for ENUM lookups

  enum.c did not handle regex backtraces correctly.  The '\1' in the regex is a backreference that requires a pattern match to be inserted.  The way the code used to work is that it would find the backreference and insert the entire input string minus the '+'.  This is incorrect.  The regexec() function takes in a variable called pmatch which is an array of structs containing the start and end indexes for each backreference substring.  The original code actually passed the pmatch array pointer into regexec but never did anything with it.  Now when a backtrace is found, the backtrace number is looked up in the pmatch array and the correct substring is inserted.

  (closes issue #14576)
  Reported by: chris-mac
  Review: http://reviewboard.digium.com/r/187/
........

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