/usr/sys/netinet/if_ether.c bug

Kenneth Kutz kutz at bgsuvax.UUCP
Fri Jun 24 06:57:40 AEST 1988


Index: /usr/sys/netinet/if_ether.c (7.1.1.1 2/27/87)

Description:
     1) First system sends out an ARP request (e.g. Ultrix or PC with PC/IP)
     2) BSD 4.3 responds and inserts entry of ARP requester in his cache
     3) First system loses ARP entry (such as rebooting or timing out ARP entry)
     4) Same first system sends out another ARP request
     5) BSD 4.3 sees the requester's info in his cache already from
        previous request and does NOT respond.

Repeat-by:
	1) Make sure there are no ARP entries in either machines cache
           (use the arp command)
        2) ping the BSD system (which causes arp entry to be put into
           BSD system's cache).  This ping works.
        3) remove the ARP entry from first system cache.
        4) ping the BSD system - BSD system does NOT respond

Fix:

*** /usr/sys/netinet/if_ether.c.old	Thu Oct 15 14:05:08 1987
--- /usr/sys/netinet/if_ether.c	Mon Jun 13 17:12:38 1988
***************
*** 314,320 ****
  		 * If we've already asked the other side about
  		 * trailers, just give up now and go home.
  		 */
! 		if (at->at_flags & ATF_ASKTRAILERS) {
  			splx(s);
  			goto out;
  		}
--- 314,320 ----
  		 * If we've already asked the other side about
  		 * trailers, just give up now and go home.
  		 */
! 		if (at->at_flags & ATF_ASKTRAILERS && op != ARPOP_REQUEST) {
  			splx(s);
  			goto out;
  		}



-- 
--------------------------------------------------------------------
      Kenneth J. Kutz         	CSNET kutz at bgsu.edu
				UUCP  ...!osu-cis!bgsuvax!kutz
 Disclaimer: Opinions expressed are my own and not of my employer's
--------------------------------------------------------------------



More information about the Comp.bugs.4bsd.ucb-fixes mailing list