[asterisk-bugs] [Asterisk 0013703]: Abort in free in queue show <name> command

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Oct 16 16:04:42 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13703 
====================================================================== 
Reported By:                davidw
Assigned To:                putnopvut
====================================================================== 
Project:                    Asterisk
Issue ID:                   13703
Category:                   Applications/app_queue
Reproducibility:            have not tried
Severity:                   crash
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.6.0 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-10-15 08:56 CDT
Last Modified:              2008-10-16 16:04 CDT
====================================================================== 
Summary:                    Abort in free in queue show <name> command
Description: 
We were getting bogus queue not found messages from the QUEUE_MEMBER (and
QUEUE_MEMBER_COUNT function), so after running "queue show", which gave the
truncated queue name, we tried queue show <name> with the full name.
====================================================================== 

---------------------------------------------------------------------- 
 (0093849) putnopvut (administrator) - 2008-10-16 16:04
 http://bugs.digium.com/view.php?id=13703#c93849 
---------------------------------------------------------------------- 
I have come up with another solution for 1.6.0 and 1.6.1 which will fix the
problems here and which will not cause a behavior change. However, it may
slightly degrade performance in setups that have lots and lots of queues.

Essentially, since almost every instance of ao2_find() in app_queue may
take user-generated input, using the OBJ_POINTER flag can result in bad
hash lookups if the user-generated string is not exactly the same case as
what was specified in queues.conf. So, the fix I have is to remove the
OBJ_POINTER flag from all ao2_find calls in app_queue. The result of this
is that the hashing callback will not be used on the user-generated input
used to find a queue. This will result in an O(n) lookup of queues instead
of O(1), but this is likely not going to be a problem for most since in
versions of Asterisk prior to 1.6.0, finding a queue was an O(n) lookup,
too. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-10-16 16:04 putnopvut      Note Added: 0093849                          
======================================================================




More information about the asterisk-bugs mailing list