Date: Sat, 10 Mar 2001 18:36:37 -0500 (EST) From: dgilbert@velocet.ca To: FreeBSD-gnats-submit@freebsd.org Subject: kern/25758: tcp_usrreq.c doesn't compile with TCPDEBUG set. Message-ID: <20010310233637.D22A7384A6@repeat.velocet.ca>
next in thread | raw e-mail | index | archive | help
>Number: 25758
>Category: kern
>Synopsis: tcp_usrreq.c doesn't compile with TCPDEBUG set
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Mar 12 20:00:03 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: David Gilbert
>Release: FreeBSD 4.2-STABLE i386
>Organization:
Velocet Communications
>Environment:
System: FreeBSD strike.velocet.ca 4.2-STABLE FreeBSD 4.2-STABLE #3: Sun Jan 7 23:36:46 EST 2001 root@strike.velocet.ca:/usr/src/sys/compile/STRIKE i386
>Description:
The following code in tcp_usrreq.c (line 412)
static int
tcp_usr_accept(struct socket *so, struct sockaddr **nam)
{
int s = splnet();
int error = 0;
struct inpcb *inp = sotoinpcb(so);
struct tcpcb *tp;
if (so->so_state & SS_ISDISCONNECTED) {
error = ECONNABORTED;
goto out;
}
COMMON_START();
in_setpeeraddr(so, nam);
COMMON_END(PRU_ACCEPT);
}
invokes COMMON_START() incorrectly:
#define COMMON_START() TCPDEBUG0; \
do { \
if (inp == 0) { \
splx(s); \
return EINVAL; \
} \
tp = intotcpcb(inp); \
TCPDEBUG1(); \
} while(0)
Where TCPDEBUG0 is
#ifdef TCPDEBUG
#define TCPDEBUG0 int ostate
#define TCPDEBUG1() ostate = tp ? tp->t_state : 0
#define TCPDEBUG2(req) if (tp && (so->so_options & SO_DEBUG)) \
tcp_trace(TA_USER, ostate, tp, 0, 0, req)
#else
#define TCPDEBUG0
#define TCPDEBUG1()
#define TCPDEBUG2(req)
#endif
Which obviously doesn't work if TCPDEBUG is set.
>How-To-Repeat:
Put "options TCPDEBUG" in your kernel and try to compile
>Fix:
I'm not familiar with this code ... or what affects what.
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010310233637.D22A7384A6>
