This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


http://sourceware.org/bugzilla/show_bug.cgi?id=14594

             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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]