Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!paladin.american.edu!news.univie.ac.at!fstgds15.tu-graz.ac.at!fstgds01.tu-graz.ac.at!not-for-mail From: chmr@edvz.tu-graz.ac.at (Christoph Robitschko) Newsgroups: comp.os.386bsd.bugs Subject: Re: telnet finger BUG Date: 18 Aug 1993 17:05:52 +0200 Organization: Technical University of Graz, Austria Lines: 36 Message-ID: <24tgggINNou2@fstgds01.tu-graz.ac.at> References: <3888@bigfoot.first.gmd.de> NNTP-Posting-Host: fstgds01.tu-graz.ac.at X-Newsreader: TIN [version 1.2 PL1] In article <3888@bigfoot.first.gmd.de> Ralph Berg (ralph@eowyn.first.gmd.de) wrote: > Hi Netters, > did you ever tried to call telnet localhost, without having an ethernet card > installed? Try finger @localhost ! Yes I tried... > MAKE a sync before you call one of these functions!!!!!!!!! > Your system will make a reboot without any panic message!!! > But perhaps I've configured something very wrong! No, this really is a bug, but you can work around it by configuring a slip device in your kernel. A short description of the bug follows: the lo0 driver's output routine blocks network interrupts while it is executing. Since you have no network card, there are no interrupts to block (netmask == 0). In the output routine, it sets up a software interrupt that calls lo0's input routine when the interrupt priority is zero again (in your case immediately, because netmask == 0). loinput in turn calls looutput to acknoledge the packet (and etc), which sets up a software interrupt for loinput, which ..... What follows is a kernel stack overflow, and therefore a triple exception which resets the CPU (no chance for a panic because the kernel stack is not valid...) As said, the workaround is to either configure in a slip device, or to include a line "if (!netmask) netmask = 0x8000;" at the end of isa_configure() (/sys/i386/isa/isa.c, line ~130), as is done in NetBSD. A real fix is not in sight. Christoph