[OpenSIPS-Devel] bug in t_msgbuilder.c

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Nov 4 10:59:42 CET 2010


Hi Kennard,

Thanks for the fix - it a very stupid bug...hard to imagine how 1 ended 
up instead of 0 :-/

I applied your patch with the fix only - I try to sync the code with the 
1.6 branch to make the backporting easier.

BTW, how you spotted it - some trailing chars in ACKs and CANCELs ?

REgards,
Bogdan

Kennard White wrote:
> Hi,
>
> There appears to be a minor bug in t_msgbuilder.c in HEAD. The 
> build_local() function is off-by-one when computing the length of the 
> message it is going to build. End result is that locally generated 
> messages (CANCEL and some ACKs) have an extra garbage byte at end of 
> message. The garbage byte happens to be a null. Other SIP stacks 
> complain about this extra byte.
>
> The problem is this:
>            (Trans->extra_hdrs.s?Trans->extra_hdrs.len:1)
> The "1" should be a "0" to be consistent with the later code.
>
> I've included patch that fixed this and changes the length computation 
> to match the order in which the message it built. It also breaks up 
> the length computation into groups. Goal is to make it easier to find 
> future length computation errors -- took 4 hours to find this 
> relatively simple error. I also added a final assert -- not sure what 
> the opensips policy is on asserts.
>
> Thanks,
> Kennard
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Devel mailing list
> Devel at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>   


-- 
Bogdan-Andrei Iancu
OpenSIPS Bootcamp
15 - 19 November 2010, Edison, New Jersey, USA
www.voice-system.ro




More information about the Devel mailing list