"Noriko.Katayama" <kata...@open.nm.fujitsu.co.jp> writes:
> The log of sdb is below:
>
> # sdb /usr/sbin/gated ./core
> no source file
> no current source file
> 0x2bde6 (rthlist_match:426+0xc) l r7,4(r6)
> *t
> rthlist_match(dst=0x1c0178) [rt_radix.c:426]
> redirect(dst=0x1c0178,mask=0x1b1630,gateway=0x1c00e8,src=0x1c0180)
[rt_redirect.c:109]
> icmp_redirect_process(jp=0x202150) [icmp.c:326]
> task_job_fg_dispatch() [task.c:1701]
> main(0x1,0x7fffff98,0x7fffffa0) [task.c:6526]
> *q
> #
>
> Then I tried fix of rthlist_match() in rt_radix.c .
>
> % diff -c rt_radix.c.org rt_radix.c.fix
> *** rt_radix.c.org Sat May 25 14:47:10 1996
> --- rt_radix.c.fix Sat May 25 15:47:38 1996
> ***************
> *** 400,406 ****
> * way down
> */
> sp = stack;
> ! while (rn) {
> if (rn->rnode_rth) {
> *sp++ = rn;
> }
> --- 400,407 ----
> * way down
> */
> sp = stack;
> ! bitlen = mask_to_prefix_si(si, si->si_mask_max);
> ! while (rn && (rn->rnode_bit < bitlen)) {
> if (rn->rnode_rth) {
> *sp++ = rn;
> }
>
>
I'd like to understand what was in stack at the time
you core dumped. In simply examining the code it looks
like it "should" work without the above fix.
By what is in stack I mean what is do the radix_node
stack entries look like (e.g)
print *dst
print *stack[0]
o
o
o
print *stack[N]
Also, a gated_dump immediately before the redirect (and
subsequent core dump) would be of interest.
My apologies for waiting do long to ask you for this but
as of late I've been working on our non-GateD based router.
Acee