bugzilla-daemon@bugzilla.netfilter.org
2007-Jan-18 02:36 UTC
[Bug 532] New: ip_nat_sip rewrote Call-ID instead of Contact - patch attached
https://bugzilla.netfilter.org/bugzilla/show_bug.cgi?id=532
Summary: ip_nat_sip rewrote Call-ID instead of Contact - patch
attached
Product: netfilter/iptables
Version: linux-2.6.x
Platform: All
URL: http://ibp.de/
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: ip_conntrack
AssignedTo: laforge@netfilter.org
ReportedBy: lars@ibp.de
A softphone (SJPhone) in my nat'ed network couldn't complete outgoing
calls. I would get initial audio,
but the call was never connected as far as the softphone was concerned.
Analysis showed that ip_nat_sip rewrote the IP-Address in the Call-ID: instead
of the IP-Address in the
Contact: header.
The problem is in ip_conntrack_sip.c:skp_epaddr_len: it searches for the next @
to skip the username,
but does not stop at the end of the header line.
In my case, SJPhone sends a Contact without a username, and the next @ was in
the Call-ID header.
Attached is a (trivial) fix.
The fix should be safe, even in the presence of clients that use continuation
lines.
--- ip_conntrack_sip.orig 2007-01-18 01:25:24.000000000 +0100
+++ ip_conntrack_sip.c 2007-01-18 01:24:31.000000000 +0100
@@ -247,8 +247,10 @@
{
int s = *shift;
- for (; dptr <= limit && *dptr != '@'; dptr++)
+ // Search for @, but stop at the end of the line
+ for (; dptr <= limit && *dptr != '@' &&
+ *dptr != '\r' && *dptr != '\n'; dptr++)
(*shift)++;
if (*dptr == '@') {
--
Configure bugmail:
https://bugzilla.netfilter.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
