Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Aug 1996 06:22:30 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-current@FreeBSD.org, j@uriah.heep.sax.de
Cc:        fenner@parc.xerox.com
Subject:   Re: Crash in rtrequest()
Message-ID:  <199608102022.GAA07492@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Anyway, the stacktrace i've been quoting was fairly complete:

>(kgdb) backtrace
>[...]
>#10 0xf01bab61 in calltrap ()
>#11 0xf0143967 in rt_setgate (rt0=0xf0f39800, dst=0xf0f3a730, gate=0xf0e17450)
>    at ../../net/route.c:682
>#12 0xf01435be in rtrequest (req=11, dst=0xf0f3a730, gateway=0x0, netmask=0x0, 
>    flags=0, ret_nrt=0xefbffe68) at ../../net/route.c:468
>#13 0xf0142f21 in rtalloc1 (dst=0xf0f3a730, report=1, ignflags=0)
>    at ../../net/route.c:130
>#14 0xf0142e6b in rtalloc (ro=0xf0f3a72c) at ../../net/route.c:98
>#15 0xf01490fd in in_pcbladdr ()
>#16 0xf015197e in tcp_connect ()
>#17 0xf0151363 in tcp_usr_connect ()
>#18 0xf012458f in soconnect ()
>#19 0xf01270ef in connect ()
>[...]

>The ``calltrap'' is actually the crashing instance of rtrequest(), but

The bogus backtrace was supposed to be fixed in rev.1.10 of i386/exception.s,
but the fix got deleted in rev.1.14.  Backtraces for NULL pointers and the
like will always show `calltrap' instead of the routine where the fault
occurred until this is fixed.

>rt_setgate() has been called by another instance of rtrequest:

>	makeroute:
>		R_Malloc(rt, struct rtentry *, sizeof(*rt));
>		if (rt == 0)
>			senderr(ENOBUFS);
>		Bzero(rt, sizeof(*rt));
>		rt->rt_flags = RTF_UP | flags;
>		if (rt_setgate(rt, dst, gateway)) {	<<=== here
>			Free(rt);
>			senderr(ENOBUFS);
>		}

Apparently rt_key(rt0) is NULL in rt_setgate().

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608102022.GAA07492>