ANSI RLC has no parameters, not even optional, so add it to the specific table.
Accept with just a MILD warning messages that are truncated just before the optional parameters pointer. git-svn-id: http://yate.null.ro/svn/yate/trunk@3177 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
aaeed9c8be
commit
a942d5f1ef
|
@ -1187,6 +1187,12 @@ static const MsgParams s_ansi_params[] = {
|
|||
SS7MsgISUP::EndOfParameters
|
||||
}
|
||||
},
|
||||
{ SS7MsgISUP::RLC, false,
|
||||
{
|
||||
SS7MsgISUP::EndOfParameters,
|
||||
SS7MsgISUP::EndOfParameters
|
||||
}
|
||||
},
|
||||
{ SS7MsgISUP::Unknown, false, { SS7MsgISUP::EndOfParameters } }
|
||||
};
|
||||
|
||||
|
@ -2764,11 +2770,15 @@ bool SS7ISUP::decodeMessage(NamedList& msg,
|
|||
} // while ((ptype = *plist++)...
|
||||
// now decode the optional parameters if the message supports them
|
||||
if (params->optional) {
|
||||
unsigned int offs = paramPtr[0];
|
||||
unsigned int offs = paramLen ? paramPtr[0] : 0;
|
||||
if (offs >= paramLen) {
|
||||
Debug(this,DebugWarn,"Invalid ISUP optional offset %u (len=%u) [%p]",
|
||||
offs,paramLen,this);
|
||||
return false;
|
||||
if (paramLen) {
|
||||
Debug(this,DebugWarn,"Invalid ISUP optional offset %u (len=%u) [%p]",
|
||||
offs,paramLen,this);
|
||||
return false;
|
||||
}
|
||||
Debug(this,DebugMild,"ISUP message %s lacking optional parameters [%p]",
|
||||
msgName,this);
|
||||
}
|
||||
else if (offs) {
|
||||
mustWarn = true;
|
||||
|
|
Loading…
Reference in New Issue