[omniORB] COMM_FAILURES and memory corruption

Ralf Hupfer hupfer@ivi.fhg.de
Tue Nov 5 10:30:02 2002


Hi everybody,

Is there a possibility that omniORB causes memory corruption when an 
operation throws an exception?

I am using an interface that takes an in-, out- and inout-parameter. Both 
the in- ind inout-parameters are nested sequences. The problem is 
caused by the in-parameter, which is allocated on the heap and passed 
to the method by the according _var-type. If the operation succeeds, 
everything is fine, but if an COMM_FAILURE occurs the in-parameter 
seems to be corrupted afterwards (I checked if with NUMEGA 
DevPartner Studio). It shows a "dangling pointer" in 
mySequence::`scalar deleting destructor'.

As far as I understood the CORBA specification, the in-parameters are 
guaranteed to be unchanged after any operation. Has anybody 
experienced a similar behavior bevor?

I am using omniORB3.04 on Windows2000, VisualC++ 6.0 and Numega 
DevPartner Studio. However, it's not the first time that Numega reveals 
memory errors in the omniORB libraries for Windows ...

Thanks for any hints
Ralf