https://bugzilla.redhat.com/show_bug.cgi?id=1095664

            Bug ID: 1095664
           Summary: Crash in g_type_free_instance for instance objects at
                    an address > 4GB on win64
           Product: Fedora
           Version: 20
         Component: mingw-glib2
          Severity: medium
          Assignee: [email protected]
          Reporter: [email protected]
        QA Contact: [email protected]
                CC: [email protected],
                    [email protected],
                    [email protected], [email protected],
                    [email protected], [email protected],
                    [email protected]



Description of problem:
For some reason, glib2 is compiled with valgrind support.
This leads to a special code sequence to check if valgrind is running.
Among other things, this code sequence also contains an xchg ebx, ebx
instruction.
In g_type_free_instance, the address of the memory to be freed is stored in
rbx, and the xchg ebx,ebx zeros out the upper 32bit of the address.
This has no effect for most programs, but for large programs which use more
then 4GB of memory, it will lead to suprise crashes.
IMPORTANT: The valgrind check only happens for types with private data.

Adding NVALGRIND=1 to the compiler defines disables valgrind support and fixes
the problem.


Version-Release number of selected component (if applicable):
mingw64-glib2-2.38.2-1.fc20

How reproducible:
always

Steps to Reproduce:
1. Use loads of memory
2. create a GTypeInstance (with private data or the bug won't trigger) at an
address > 4GB. Most GObject types should also work
3. free the instance with g_type_free_instance (or g_object_unref)
4. -> crash

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug 
https://bugzilla.redhat.com/token.cgi?t=KFtUOGV4mk&a=cc_unsubscribe
_______________________________________________
mingw mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/mingw

Reply via email to