From owner-freebsd-hackers Wed Jul 28 4:56: 8 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from oskar.nanoteq.co.za (oskar.nanoteq.co.za [196.37.91.10]) by hub.freebsd.org (Postfix) with ESMTP id 2DC9414F22 for ; Wed, 28 Jul 1999 04:55:12 -0700 (PDT) (envelope-from rbezuide@oskar.nanoteq.co.za) Received: (from rbezuide@localhost) by oskar.nanoteq.co.za (8.9.0/8.9.0) id NAA00418 for freebsd-hackers@freebsd.org; Wed, 28 Jul 1999 13:57:21 +0200 (SAT) From: Reinier Bezuidenhout Message-Id: <199907281157.NAA00418@oskar.nanoteq.co.za> Subject: newaliases and 256 tun devices To: freebsd-hackers@freebsd.org Date: Wed, 28 Jul 1999 13:57:18 +0200 (SAT) X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi ... I previously mailed the same error ... and then I thought it was a "miss-corrolation" between kernel sources and userland. Since then I built a SNAP of 990726 sources and tried the same thing and the error occured again . Same sources used for the compile of the kernel and userlevel binaries. I've now traced the following down ... it has something todo with the changes in net/if_dl.h (the entries added for source routing and the fact that my kernel has pseudo-device tun 255 in the config. Setup. PII400 / Asus P2-99 990726 SNAP / fxp and de0 cards. When I do a "ifconfig fxp0 delete" and then a newaliases the newaliases exits with a segmentation failt. If I reconfig the device or up the device ... newaliases works ok. I then built a kernel with only 200 tun devices. Then newaliases works everytime. It seems that gated also suffers from the same problem in that if no device is configured it exits on signal 6 (core dumped) Just for reference this works fine on a 2.2.7/8 FreeBSD without any problems ... The problem seems to be in conf.c of sendmail round line 4429 if there is 255 tun devices the for loop below only gets to 234 +/- and then doesn't check anything further and crashes (but only if the working interface is deleted) gdb shows that the pointer *sa points to somewhere wonderful :) It must have something todo with the moving of this pointer through the list ??? Was anything changed for the amount of tun devices allowed ?? for (i = 0; i < ifc.ifc_len; ) { struct ifreq *ifr = (struct ifreq *) &ifc.ifc_buf[i]; SOCKADDR *sa = (SOCKADDR *) &ifr->ifr_addr; struct in_addr ia; #ifdef SIOCGIFFLAGS struct ifreq ifrf; #endif char ip_addr[256]; extern char *inet_ntoa(); #ifdef BSD4_4_SOCKADDR if (sa->sa.sa_len > sizeof ifr->ifr_addr) i += sizeof ifr->ifr_name + sa->sa.sa_len; else #endif i += sizeof *ifr; if (tTd(0, 20)) printf("%s\n", anynet_ntoa(sa)); Thanx Reinier To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message