Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Feb 1997 15:22:40 +0100 (MET)
From:      Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
To:        FreeBSD-gnats@freefall.freebsd.org, freebsd-bugs@freefall.freebsd.org
Cc:        Francis.Dupont@inria.fr
Subject:   Re: bin/2668: modification suggested for rarpd
Message-ID:  <199702051422.PAA14008@horus.imag.fr>
In-Reply-To: FreeBSD-gnats@freefall.freebsd.org's message as of Feb  5,  5:40.

next in thread | raw e-mail | index | archive | help
Dans votre courrier du 5 Feb  5:40 vous ecrivez :
>Thank you very much for your problem report.
>It has the internal identification `bin/2668'.
>The individual assigned to look at your
>bug is: freebsd-bugs. 
>
>>Category:       bin
>>Responsible:    freebsd-bugs
>>Synopsis:       modification suggested for rarpd
>>Arrival-Date:   Wed Feb  5 05:40:02 PST 1997

Following a remark of Theo de Raadt <deraadt@theos.com> about a memory leak
in my suggested patch, here is a updated version

I hope this wille help you

*** rarpd.c.DIST	Thu Mar 21 19:28:23 1996
--- rarpd.c	Wed Feb  5 15:17:37 1997
***************
*** 193,198 ****
--- 193,203 ----
  	char   *ifname;
  {
  	struct if_info *p;
+ 	int fd;
+ 
+ 	fd = rarp_open(ifname);
+ 	if (fd < 0)
+ 		return;
  
  	p = (struct if_info *)malloc(sizeof(*p));
  	if (p == 0) {
***************
*** 202,208 ****
  	p->ii_next = iflist;
  	iflist = p;
  
! 	p->ii_fd = rarp_open(ifname);
  	lookup_eaddr(ifname, p->ii_eaddr);
  	lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask);
  }
--- 207,213 ----
  	p->ii_next = iflist;
  	iflist = p;
  
! 	p->ii_fd = fd;
  	lookup_eaddr(ifname, p->ii_eaddr);
  	lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask);
  }
***************
*** 317,322 ****
--- 322,331 ----
  	}
  	(void) strncpy(ifr.ifr_name, device, sizeof ifr.ifr_name);
  	if (ioctl(fd, BIOCSETIF, (caddr_t) & ifr) < 0) {
+ 		if (aflag) {	/* for -a skip not ethernet interfaces */
+ 			close(fd);
+ 			return -1;
+ 		}
  		err(FATAL, "BIOCSETIF: %s", strerror(errno));
  		/* NOTREACHED */
  	}
***************
*** 327,332 ****
--- 336,345 ----
  		/* NOTREACHED */
  	}
  	if (dlt != DLT_EN10MB) {
+ 		if (aflag) {	/* for -a skip not ethernet interfaces */
+ 			close(fd);
+ 			return -1;
+ 		}
  		err(FATAL, "%s is not an ethernet", device);
  		/* NOTREACHED */
  	}


-- 
Jean-Luc RICHIER (Jean-Luc.Richier@Imag.Fr  richier@imag.fr)
Laboratoire Logiciels, Systemes et Reseaux (LSR-IMAG)
IMAG-CAMPUS, BP 53, F-38041 GRENOBLE Cedex 9
Tel : (33) 4 76 82 72 32 Fax : (33) 4 76 82 72 87



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