[Bug localedata/14594] New: Testing a mangled pointer results in initializer not being called

law at redhat dot com sourceware-bugzilla@sourceware.org
Wed Sep 19 15:50:00 GMT 2012


             Bug #: 14594
           Summary: Testing a mangled pointer results in initializer not
                    being called
           Product: glibc
           Version: 2.17
            Status: NEW
          Severity: normal
          Priority: P2
         Component: localedata
        AssignedTo: unassigned@sourceware.org
        ReportedBy: law@redhat.com
                CC: libc-locales@sources.redhat.com
    Classification: Unclassified

If a gconv module's init function has an address that is the same as the
pointer guard value, then the gconv module's init function will not be called.

The problem is find_module tests the *mangled* pointer against NULL and if that
test is false, then the initializer is called.

Obviously with the mangling function being a simple xor, if the function's
address is the same as the pointer guard, the mangled value will be zero and
the initializer doesn't get called.

Inspection shows similar problems gconv_db.c.  There's also an instance in
btowc.c, but in that case the test is just controlling an optimization and as
far as I can tell doesn't result in incorrect operation.

Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the Libc-locales mailing list