From owner-freebsd-bugs Wed Feb 5 06:29:40 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id GAA17485 for bugs-outgoing; Wed, 5 Feb 1997 06:29:40 -0800 (PST) Received: from horus.imag.fr (horus.imag.fr [129.88.38.2]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id GAA17445; Wed, 5 Feb 1997 06:29:05 -0800 (PST) Received: (from richier@localhost) by horus.imag.fr (8.8.1/8.6.9) id PAA14155; Wed, 5 Feb 1997 15:28:57 +0100 (MET) Date: Wed, 5 Feb 1997 15:28:57 +0100 (MET) From: Jean-Luc Richier Message-Id: <199702051428.PAA14155@horus.imag.fr> In-Reply-To: Jean-Luc Richier's message as of Feb 5, 15:22. Organization: IMAG, Grenoble, France X-Mailer: Mail User's Shell (7.2.5 10/14/92) To: FreeBSD-gnats@freefall.freebsd.org, freebsd-bugs@freefall.freebsd.org Subject: Re: bin/2668: modification suggested for rarpd Sender: owner-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk In your mail dated 5 Feb 5:40 you write : >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 First an apology : The previous message was about NetBSD and not FreeBSD. This one is the correct. Following a remark of Theo de Raadt about a memory leak in my suggested patch, here is a updated version for FreeBSD I hope this will help you *** rarpd.c.DIST Wed Jun 5 04:57:54 1996 --- rarpd.c Wed Feb 5 15:15:55 1997 *************** *** 114,119 **** --- 114,122 ---- void lookup_eaddr(); void lookup_ipaddr(); + int aflag = 0; /* listen on "all" interfaces */ + int fflag = 0; /* don't fork */ + void main(argc, argv) int argc; *************** *** 122,130 **** int op, pid; char *ifname, *hostname, *name; - int aflag = 0; /* listen on "all" interfaces */ - int fflag = 0; /* don't fork */ - extern char *optarg; extern int optind, opterr; --- 125,130 ---- *************** *** 183,195 **** char *ifname; { struct if_info *p; p = (struct if_info *)malloc(sizeof(*p)); p->ii_next = iflist; iflist = p; ! p->ii_fd = rarp_open(ifname); lookup_eaddr(p->ii_fd, p->ii_eaddr); lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask); } --- 183,199 ---- char *ifname; { struct if_info *p; + int fd; + fd = rarp_open(ifname); + if (fd < 0) + return; p = (struct if_info *)malloc(sizeof(*p)); p->ii_next = iflist; iflist = p; ! p->ii_next = fd; lookup_eaddr(p->ii_fd, p->ii_eaddr); lookup_ipaddr(ifname, &p->ii_ipaddr, &p->ii_netmask); } *************** *** 305,310 **** --- 309,318 ---- } (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; + } syslog(LOG_ERR, "BIOCSETIF: %m"); exit(1); } *************** *** 317,322 **** --- 325,334 ---- exit(1); } if (link_type != DLT_EN10MB) { + if (aflag) { /* for -a skip not ethernet interfaces */ + close(fd); + return -1; + } syslog(LOG_ERR, "%s not on ethernet", device); exit(1); } -- 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