https://bz.apache.org/bugzilla/show_bug.cgi?id=62083

            Bug ID: 62083
           Summary: RTLD_GLOBAL should not be used for loading modules
           Product: Apache httpd-2
           Version: 2.4.10
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: mod_so
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Apache HTTPD uses "apr_dso_load" to load modules, which in turn only allows the
use of RTLD_GLOBAL.

This generates a number of problems in my set up, and potentially in many
others. In particular, if two modules define symbols with similar names, one of
them gets overwritten, resulting into SIGSEGV.

In my setup, I have a module that makes use of libjansson.so for JSON
processing. However, the PHP5 module make use of json-c.so. The problem is that
both export some symbols with identical names. When my module is going to
process JSON, it ends up calling json-c.so functions rather than jansson ones,
crashing unavoidably.

I've tried re-building "apr_dso_load" using RTLD_LOCAL and the problem seems
fixed.

I acknowledge that the fact of only being able to use RTLD_GLOBAL in libapr is
already marked as a bug, and belongs there, but using libapr is http-2  Even
more, when (if) libapr allows other ldopen flags, http-2 should provide the
means for selecting one or the other.

Thanks

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to