Ticket Hash: e59985dfdfbecfb1238b91f1094fe31344e4fa8f
Title: type_name:job allocates on the stack
Status: Fixed Type: Code_Defect
Severity: Critical Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2019-08-17 05:05:06
Version Found In: <91
User Comments:
luismachuca added on 2019-02-26 13:42:25:

library/type_name.hpp line 30: the header provides typeid demangle, however for compilers using cxxabi (eg.: GCC), it calls abi::__cxa_demangle with a buffer allocated on the stack.

    char buf[1024]; // <-- error is this
    size_t size=sizeof(buf);
    int status;
    char* res = abi::__cxa_demangle (name, buf, &size, &status);

Relevant quotes from the cxxabi documentation:

output_buffer A region of memory, allocated with malloc, of *length bytes, into which the demangled name is stored.
The caller is responsible for deallocating this memory using free.

Sourced by [1] referencing [2].


luismachuca (claiming to be 17ed6f42) added on 2019-08-17 05:05:06:

Fixed in [17ed6f42].