Hi, I’m testing ooh323c v0.7 and I’ve found this
problem:
If you call with “simple” a remote h.323ep and
this process crash the “simple” makes an infinite loop, it can’t
make other calls and write a lot of error logs like this:
….
14:15:18:195 ERROR:Failed ooH2250Receive - Clearing
call (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H245
message (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H225
message recvLen= -44 (outgoing
, ooh323c_6)
14:15:18:195 ERROR:Failed ooH2250Receive - Clearing
call (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H245
message (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H225
message recvLen= -44 (outgoing
, ooh323c_6)
14:15:18:195 ERROR:Failed ooH2250Receive - Clearing
call (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H245
message (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H225
message recvLen= -44 (outgoing
, ooh323c_6)
14:15:18:195 ERROR:Failed ooH2250Receive - Clearing
call (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H245
message (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H225
message recvLen= -44 (outgoing
, ooh323c_6)
14:15:18:195 ERROR:Failed ooH2250Receive - Clearing
call (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H245
message (outgoing, ooh323c_6)
14:15:18:195 Error: Reading TPKT header for H225
message recvLen= -44 (outgoing
…..
The log file grows very fast and fills the entire hard disk,
my “simple.log” for example became 870 Mb in a little time.
Another question: I see in oocapability.c various instructions
like this:
epCap =
(ooH323EpCapability*)memAlloc(call->pctxt,
sizeof(ooH323EpCapability));
params
=(OOGSMCapParams*)memAlloc(call->pctxt,sizeof(OOGSMCapParams));
if(!epCap
|| !params)
{
OOTRACEERR3("Error:Memory - ooIsAudioDataTypeGSMSupported - "
"epCap/params (%s, %s)\n", call->callType,
call->callToken);
return NULL;
}
If a memalloc() fails and the other is good the pointer is lost
with memory leak.
epCap =
(ooH323EpCapability*)memAlloc(call->pctxt,
sizeof(ooH323EpCapability));
params = (OOH263CapParams*)
memAlloc(call->pctxt,
sizeof(OOH263CapParams));
if(!epCap && !params)
{
OOTRACEERR3("Error:Memory - ooIsVideoDataTypeH263Supported - "
"epCap/params. (%s, %s)\n", call->callType,
call->callToken);
return
NULL;
}
epCap->params = params;
but if epCap is NULL epCap->params can crash.
Regards,
Emanuele