BIND 10 #3198: isc::logging initialization in user_chk hook library cores under Debian6

BIND 10 Development do-not-reply at isc.org
Tue Feb 4 12:23:06 UTC 2014


#3198: isc::logging initialization in user_chk hook library cores under Debian6
-------------------------------------+-------------------------------------
            Reporter:  tmark         |                        Owner:
                Type:  defect        |                       Status:  new
            Priority:  medium        |                    Milestone:  DHCP
           Component:  logging       |  Outstanding Tasks
            Keywords:                |                   Resolution:
           Sensitive:  0             |                 CVSS Scoring:
         Sub-Project:  DHCP          |              Defect Severity:  N/A
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Description changed by tmark:

Old description:

> logging issue on Debian:
>
> MessageIntitializer::loadDictionary() cores when called explicitly from
> function insides shared library which defines its own log messages.
>
> The dhcp server opens each hook library once during configuration
> parsing. This is done to "validate" the library. It is closed immediately
> without invoking its load function.
>
> This causes the MessageIntializer declared in the generated messages .cc
> file to be instantiated.  This in turn adds an entry to
> MessageInitializer::logger_values.  This entry is never "consumed" as
> MessageInitializer::loadDictionary is not invoked prior to closing the
> library.
>
> The dhcp server then opens each configured hooks library again, this time
> invoking their load functions.  When the explicit call to
> MessageInitializer::loadDictionary() is maed within the library's load
> function, it contains a 'stale' entry from the initial library open.
> Under some OS's accessing this entry is a seg fault.

New description:

 logging issue on Debian:

 MessageIntitializer::loadDictionary() cores when called explicitly from
 function inside a shared library which defines its own log messages.

 The dhcp server opens each hook library once during configuration parsing.
 This is done to "validate" the library. It is closed immediately without
 invoking its load function.

 This causes the MessageIntializer declared in the generated messages .cc
 file to be instantiated.  This in turn adds an entry to
 MessageInitializer::logger_values.  This entry is never "consumed" as
 MessageInitializer::loadDictionary is not invoked prior to closing the
 library.

 The dhcp server then opens each configured hooks library again, this time
 invoking their load functions.  When the explicit call to
 MessageInitializer::loadDictionary() is made within the library's load
 function, it contains a 'stale' entry from the initial library open.
 Under some OS's accessing this entry is a seg fault.

--

-- 
Ticket URL: <http://bind10.isc.org/ticket/3198#comment:1>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list