Hi,
I've discovered a bug within textopsx to do with msg_apply_changes.
After creating the new request in pkg memory it is memcpy'ed back into
msg->buf. This is a issue when more than one SIP message has been read
from a TCP stream. If the new request is larger it will corrupt the
following message.
I don't know the best way to resolve this immediately, but I felt it was
worth mentioning here as you are about to release 3.2.1.
Best regards,
Hugh
Code path to recreate bug:
Send in 3 requests very quickly on a TCP stream, this is read as a
single block.
tcp_read.c: tcp_read_req()
first message is parsed.
receive_msg() ->
In the cfg, insert a header (e.g. Max-Forwards: 10),
msg_apply_changes() and forward.
More data exists in buffer, which is shifted to the start of the buffer,
however this has been overwritten.
Parse fails on second request.