Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wasatch!snake.utah.edu!forys From: forys@snake.utah.edu (Jeff Forys) Newsgroups: comp.unix.questions Subject: Re: .plan Message-ID: <3216@wasatch.utah.edu> Date: 27 Aug 89 06:04:16 GMT References: <61@towernet.UUCP> <1989Aug23.192105.21328@ee.rochester.edu> <10814@smoke.BRL.MIL> <1810@cunixc.cc.columbia.edu> <28110@news.Think.COM> <8908261924.AA22052@rodan.acs.syr.edu> <2387@auspex.auspex.com> Sender: news@wasatch.utah.edu Organization: University of Utah CS Dept Lines: 26 Keywords: 4.3BSD, finger, bug Summary: 4.3BSD "finger" doesnt filter out all non-printables... In article <2387@auspex.auspex.com> guy@auspex.auspex.com (Guy Harris) writes: > > I don't know who fixed 'finger': Berzerkley or our company's hackers. > > It was Berkeley - the 4.3 "finger" filters out non-printables in > ".project" and ".plan" files [...] Well, not exactly. While 4.3BSD finger(1) made an attempt at filtering out non-printables, the actual code (thru Tahoe) doesnt quite work: if (isprint(c) || isspace(c)) putchar(c); else putchar(c ^ 100); That last line was obviously a mistake, and people with an abundance of free time will have little difficulty figuring out how to get escape and assorted meta characters to "come thru". The author of that particular line of code probably meant to do something like: putchar(0x7f & (c | 0100)); Fortunately, it appears that the finger program has undergone a complete rewrite, so future releases of BSD should not have this problem. --- Jeff Forys @ Unv of Utah/Salt Lake, Comp Sci Dept. (801-581-4280) forys@cs.utah.edu -or- ..!{boulder,decvax,nbires}!utah-cs!forys