Menu

#23 EEPDU processor not recognized, uninitialized pointer

v1.0_(example)
open
nobody
None
1
2013-11-08
2013-11-08
Anonymous
No

You can register a processor for the EEPDU in IncomingMessage. However, the table in the called routine (from IncomingMessage::Process) PduBank::GetStaticPDU does not include the EEPDU, so the pointer to a static PDU is not set.
The pointer is tested to determine whether to unmarshal the data or clear the buffer (IncomingMessage::SwitchOnType). In either case, if a processor has been registered, it is called. There is no check that the pointer is initialized, so the registered processor is called with an unitialized pointer. Access violations follow immediately. (Win 7)
Problem can go away by adding the EEPDU to the table. Seems like the processor should not be called if the pointer isn't set.

Discussion

MongoDB Logo MongoDB