BIND 10 #2493: segfault in b10-auth when it can't connect to msgq socket

BIND 10 Development do-not-reply at isc.org
Mon Nov 19 15:52:50 UTC 2012


#2493: segfault in b10-auth when it can't connect to msgq socket
---------------------------------+-----------------------------------------
            Reporter:  jelte     |                        Owner:
                Type:  defect    |                       Status:  new
            Priority:  medium    |                    Milestone:  New Tasks
           Component:  b10-auth  |                     Keywords:
           Sensitive:  0         |              Defect Severity:  N/A
         Sub-Project:  DNS       |  Feature Depending on Ticket:
Estimated Difficulty:  0         |          Add Hours to Ticket:  0
         Total Hours:  0         |                    Internal?:  0
---------------------------------+-----------------------------------------
 I ran it as a wrong user, and I expect b10-auth to report the permission
 denied error and quit, so far so good, but when it is cleaning up it
 segfaults:

 {{{
 2012-11-19 15:45:49.929 FATAL [b10-auth.cc] CC_NO_MSGQ unable to connect
 to message queue (Permission denied)
 2012-11-19 15:45:49.935 FATAL [b10-auth.auth] AUTH_SERVER_FAILED server
 failed: Unable to connect to message queue: Permission denied
 Segmentation fault (core dumped)
 }}}

 Stacktrace:
 {{{
 Program terminated with signal 11, Segmentation fault.
 #0  std::_Rb_tree<std::string, std::pair<std::string const,
 isc::config::ConfigData>, std::_Select1st<std::pair<std::string const,
 isc::config::ConfigData> >, std::less<std::string>,
 std::allocator<std::pair<std::string const, isc::config::ConfigData> >
 >::find (this=0x70,
     __k=...) at /usr/include/g++/bits/stl_tree.h:1519
 1519          iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k);
 (gdb) where
 #0  std::_Rb_tree<std::string, std::pair<std::string const,
 isc::config::ConfigData>, std::_Select1st<std::pair<std::string const,
 isc::config::ConfigData> >, std::less<std::string>,
 std::allocator<std::pair<std::string const, isc::config::ConfigData> >
 >::find (this=0x70,
     __k=...) at /usr/include/g++/bits/stl_tree.h:1519
 #1  0x00007f7ff6824e7d in find (__x=..., this=0x70) at
 /usr/include/g++/bits/stl_map.h:697
 #2  isc::config::ModuleCCSession::removeRemoteConfig (this=<optimized
 out>, module_name=...) at ccsession.cc:718
 #3  0x00000000004324b3 in main (argc=<optimized out>, argv=<optimized
 out>) at main.cc:259
 }}}

 Looks like either the remote config data needs a cleaner initialization or
 that main.cc call needs to check first whether is succeeded setting up in
 the first place

-- 
Ticket URL: <http://bind10.isc.org/ticket/2493>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list