Custom Query (202 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (91 - 93 of 202)

Ticket Resolution Summary Owner Reporter
#114 fixed COMBIA's COM objects return invalid IDispatch pointer jasper jasper

Reported by jasper, 2 years ago.

Description

The pointer is cast to an unimplemented type.

#113 fixed symbol clashes jasper jasper

Reported by jasper, 2 years ago.

Description

On linux, a dynamic linker will only take into account public symbols once. So a symbol clash between two shared software components will cause the dynamic linker to mistake the functions of one for the other.

This has now been observed, without mitigation, the class "PropertyPackage?" in the test suite clashes with the class "PropertyPackage?" in the WaterPP, both of which export ICapeIdentification with identical symbol names. To the effect of the linker putting only one of them in the symbol table at runtime, and member functions of one class are invoked only, even if the other class is used. Which naturally leads to undefined behaviour (crash).

To mitigate, all components should by default hide their symbols from the dynamic linker, or alternatively use a namespace that is unique in the world. The former is the easier solution, and is obtained in CMake via this option

set(CMAKE_CXX_VISIBILITY_PRESET hidden)

Only the class factories need to be public, which is done automatically by COBIA's definition for COBIA_EXPORT:

#define COBIAEXPORT __attribute__((visibility("default")))
#112 invalid COBIA creation function fails to return error in case class factory is not found jasper jasper

Reported by jasper, 3 years ago.

Description

If a PMC class factory is not found, COBIA_createInstance returns no error, but a null pointer for the PMC, typically leading to a crash.

Note: See TracQuery for help on using queries.