jogle@cbnewsi.att.com (jogle) (08/16/90)
********************************************************************** I'm posting this for my brother. Please reply to the address below, although, if you do reply to me I will forward it to him. ********************************************************************** We have a Sun 3/60 running Mach 2.5 here at GE's Advanced Technology Labs. While executing the command: arp -s <hostname> <ether_address> The kernel bombed, resulting in a bus error trap in the arpioctl subroutine. The command was supposed to put the <internet_address>-<ethernet_address> pair for the host in the arptable in the kernel. Upon further investigation, the following bug was discovered in the kernel sources (/usr/build/src/kernel/netinet/if_ether.c): arpioctl(cmd,data) int cmd; caddr_t data; { register struct arptab *at; register struct sockaddr_in *sin; . . . if (at == NULL) { at = arptnew(at->at_if,&sin->sin_addr); . . . } . . . } Essentially, you are referencing at->at_if through a NULL pointer. Has anybody encountered this before? Can any of the Mach Gods in CMU reccommend a "proper" fix for it? I have patched up the code by passing in 0 instead of at->at_if (essentially at_if is not being used by ARP at this time), but I might not be thinking along the same wavelength as the original implememtors. Tom Geigel tgeigel@atl.dnet.ge.com (609)866-6624