From owner-freebsd-bugs Mon Jun 17 16:25:45 1996 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id QAA08922 for bugs-outgoing; Mon, 17 Jun 1996 16:25:45 -0700 (PDT) Received: from george.lbl.gov (george.lbl.gov [128.3.196.93]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id QAA08917 for ; Mon, 17 Jun 1996 16:25:44 -0700 (PDT) Received: (jin@localhost) by george.lbl.gov (8.6.10/8.6.5) id QAA24462 for bugs@freebsd.org; Mon, 17 Jun 1996 16:23:38 -0700 Date: Mon, 17 Jun 1996 16:23:38 -0700 From: "Jin Guojun[ITG]" Message-Id: <199606172323.QAA24462@george.lbl.gov> To: bugs@freebsd.org Subject: bug and fix in netinet/if_ether.c in 2.2-SNAP Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk A bug is found in function arpresolve() in netinet/if_ether.c. It causes panic when doing ATM due to the (rt0 == NULL). The following change is supposed for 2.2-SNAP, but it does not work because struct arpcom has been changed (no more ac_ipaddr member in arpcom). Please let me know if there is another better way to fix it. Thanks, -Jin ------------------------ Cut Here ------------------------------- *** netinet/if_ether.c Sat Jun 8 01:18:56 1996 --- netinet/if_ether.c.fixed Mon Jun 17 15:54:05 1996 *************** *** 364,371 **** if (la->la_asked == 0 || rt->rt_expire != time.tv_sec) { rt->rt_expire = time.tv_sec; if (la->la_asked++ < arp_maxtries) ! arprequest(ac, ! &(SIN(rt0->rt_ifa->ifa_addr)->sin_addr.s_addr), &(SIN(dst)->sin_addr.s_addr), ac->ac_enaddr); else { --- 364,372 ---- if (la->la_asked == 0 || rt->rt_expire != time.tv_sec) { rt->rt_expire = time.tv_sec; if (la->la_asked++ < arp_maxtries) ! arprequest(ac, rt0 ? ! &(SIN(rt0->rt_ifa->ifa_addr)->sin_addr.s_addr) ! : &ac->ac_ipaddr.s_addr, &(SIN(dst)->sin_addr.s_addr), ac->ac_enaddr); else { ------------------------ Cut Here -------------------------------