[Bug 204786] devel/libcxxrt: crash when mixing different languages with exceptions

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Nov 24 15:56:14 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204786

            Bug ID: 204786
           Summary: devel/libcxxrt: crash when mixing different languages
                    with exceptions
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs at FreeBSD.org
          Reporter: mejedi at gmail.com

Unwind API was specifically designed to allow mixed language environments where
exceptions from different runtimes interoperate. One particular example is
C++/LuaJit combination. Due to the issues in libcxxrt, databases/tarantool
crashes when linked against libcxxrt.

__cxa_free_exception does the math wrong when converting from
_Unwind_Exception* to __cxx_exception*. _Unwind_Exception instance is actually
enclosed within __cxx_exception structure, the last member. The resulting
pointer is off by -32 bytes. Leads to a crash in _Unwind_DeleteException when
LuaJIT is releasing a C++ exception.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list