[Devel] Issue with Diversion header

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon Jan 9 22:20:24 CET 2006


Hi Dan,

thanks for report - indeed there was a problem in cloning some headers 
which were lately added. It's fixed on CVS on both the 1.0.0 and head 
version. Please let me knew if the problem is fixed for you.

regards,
bogdan

Dan Pascu wrote:

>There seems to be a problem with the diversion module regarding how it 
>parses the existing Diversion headers in failure routes. This is with 
>openser 1.0.x
>
>If a message comes in, already having a Diversion header and I call 
>add_diversion() in the main route everything is fine.
>However if I call add_diversion() in failure route it crashes openser with 
>a signal 6.
>
>A trace shows that in diversion.c in add_diversion_helper() if I'm in the 
>main route msg->diversion is set, msg->diversion->type is HDR_DIVERSION_T 
>and msg->diversion->name.s points to the top diversion header name and 
>everythign is fine. The new diversion header is added on top of the 
>others as expected.
>
>If I'm in a failure route, msg->diversion is set, but msg->diversion->type 
>is HDR_OTHER_T (i.e. 0x00), msg->diversion->name is {s=NULL, len=0} 
>
>and add_diversion_helper crashes when it tries to call 
>
>anchor = anchor_lump(msg, ptr - msg->buf, 0, 0);
>
>because ptr is 0x0 
>
>The error message in syslog when it crashes is:
>
>BUG: anchor_lump: offset exceeds message size (1246003784 > 1071) 
>aborting... 
>child process 12783 exited by a signal 6
>
>  
>




More information about the Devel mailing list