[asterisk-bugs] [Asterisk 0014576]: ENUMLOOKUP - broken regex.

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Mar 6 11:35:38 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=14576 
====================================================================== 
Reported By:                chris-mac
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   14576
Category:                   Functions/func_enum
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     closed
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): 1.6.1 
SVN Revision (number only!): 178608 
Request Review:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2009-03-01 15:56 CST
Last Modified:              2009-03-06 11:35 CST
====================================================================== 
Summary:                    ENUMLOOKUP - broken regex.
Description: 
The following number +44800123123 is registered with e164.org.

$ dig 3.2.1.3.2.1.0.0.8.4.4.e164.org naptr
returns:
....
3.2.1.3.2.1.0.0.8.4.4.e164.org. 11 IN   NAPTR   200 10 "u" "E2U+SIP"
"!^\\+44800(.*)$!sip:44800\\1 at selfnet.at!" .

so in theory it should translate to: sip:44800123123 at selfnet.at

But the following dialplan function:
exten => _X.,n,Set(ENUM_URI=${ENUMLOOKUP(+44800123123,sip,s,,e164.org)})
exten => _X.,n,NoOp(Enum URI: ${ENUM_URI})

returns: 

... "Enum URI: 4480044800123123 at selfnet.at") in new stack


====================================================================== 

---------------------------------------------------------------------- 
 (0101312) svnbot (reporter) - 2009-03-06 11:35
 http://bugs.digium.com/view.php?id=14576#c101312 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 180537

_U  branches/1.6.1/
U   branches/1.6.1/main/enum.c

------------------------------------------------------------------------
r180537 | dvossel | 2009-03-06 11:35:37 -0600 (Fri, 06 Mar 2009) | 22
lines

Merged revisions 180534 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r180534 | dvossel | 2009-03-06 11:26:38 -0600 (Fri, 06 Mar 2009) | 15
lines
  
  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 http://bugs.digium.com/view.php?id=14576)
    Reported by: chris-mac
    Review: http://reviewboard.digium.com/r/187/
  ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=180537 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-03-06 11:35 svnbot         Checkin                                      
2009-03-06 11:35 svnbot         Note Added: 0101312                          
======================================================================




More information about the asterisk-bugs mailing list