[Home]

Summary:ASTERISK-16358: Manager GetVar on unset variable causes segfault
Reporter:Ben Klang (bklang)Labels:
Date Opened:2010-07-13 13:02:47Date Closed:2010-07-16 13:14:56
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Core/ManagerInterface
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:This appears to be the same type of bug as reported by me previously.

GetVar on a channel variable that is not set causes a vsnprintf() with a null argument in a string field.  On OpenSolaris, this causes a segfault.

(gdb) bt
#0  0xce8a47a0 in countbytes () from /usr/lib/libc.so.1
#1  0xce8f0793 in _ndoprnt () from /usr/lib/libc.so.1
#2  0xce8f31bd in vsnprintf () from /usr/lib/libc.so.1
#3  0x0813639d in __ast_str_helper (buf=0xca74d13c, max_len=0, append=0,
   fmt=0x817897c "Variable: %s\r\nValue: %s\r\n\r\n", ap=0xca74d15c "Z####)
   at strings.c:72
#4  0x080eab0c in astman_append (s=0xca74df64,
   fmt=0x817897c "Variable: %s\r\nValue: %s\r\n\r\n") at strings.h:767
ASTERISK-1  0x080ed302 in action_getvar (s=0xca74df64, m=0xca74dd24) at manager.c:1925
ASTERISK-2  0x080f0be6 in process_message (s=0xca74df64, m=0xca74dd24)
   at manager.c:3069
ASTERISK-3  0x080f11c4 in do_message (s=0xca74df64) at manager.c:3189
ASTERISK-4  0x080f13fc in session_do (data=0x88544c8) at manager.c:3261
ASTERISK-5  0x08141535 in dummy_start (data=0x0) at utils.c:968
ASTERISK-6 0xce92cd66 in _thrp_setup () from /usr/lib/libc.so.1
ASTERISK-7 0xce92cff0 in __csigsetjmp () from /usr/lib/libc.so.1
ASTERISK-8 0x00000000 in ?? ()
Comments:By: Leif Madsen (lmadsen) 2010-07-14 10:42:59

What is/are the other issues related to this? Thanks!

By: Ben Klang (bklang) 2010-07-14 10:53:58

Issues with similar causes: ASTERISK-15505, ASTERISK-15357, ASTERISK-15867

By: Digium Subversion (svnbot) 2010-07-16 13:04:11

Repository: asterisk
Revision: 277261

U   branches/1.4/main/manager.c

------------------------------------------------------------------------
r277261 | tilghman | 2010-07-16 13:04:10 -0500 (Fri, 16 Jul 2010) | 5 lines

If variable gotten is not set, will segfault on Solaris.

(closes issue ASTERISK-16358)
Reported by: bklang

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

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

By: Digium Subversion (svnbot) 2010-07-16 13:14:04

Repository: asterisk
Revision: 277263

_U  trunk/
U   trunk/main/manager.c

------------------------------------------------------------------------
r277263 | tilghman | 2010-07-16 13:14:04 -0500 (Fri, 16 Jul 2010) | 12 lines

Merged revisions 277261 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r277261 | tilghman | 2010-07-16 13:04:11 -0500 (Fri, 16 Jul 2010) | 5 lines
 
 If variable gotten is not set, will segfault on Solaris.
 
 (closes issue ASTERISK-16358)
  Reported by: bklang
........

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

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

By: Digium Subversion (svnbot) 2010-07-16 13:14:56

Repository: asterisk
Revision: 277264

_U  branches/1.6.2/
U   branches/1.6.2/main/manager.c

------------------------------------------------------------------------
r277264 | tilghman | 2010-07-16 13:14:55 -0500 (Fri, 16 Jul 2010) | 19 lines

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

................
 r277263 | tilghman | 2010-07-16 13:14:05 -0500 (Fri, 16 Jul 2010) | 12 lines
 
 Merged revisions 277261 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r277261 | tilghman | 2010-07-16 13:04:11 -0500 (Fri, 16 Jul 2010) | 5 lines
   
   If variable gotten is not set, will segfault on Solaris.
   
   (closes issue ASTERISK-16358)
    Reported by: bklang
 ........
................

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

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