Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!mips!mips!darwin.sura.net!mojo.eng.umd.edu!pandora.pix.com!news From: news@pix.com (The News Subsystem) Subject: make(1) bug Message-ID: <Bt3044.Fzp@pix.com> Sender: news@pix.com (The News Subsystem) Nntp-Posting-Host: pandora.pix.com Organization: Pix -- The company with no adult supervision. Date: Sun, 16 Aug 1992 14:55:15 GMT Lines: 48 This article was posted to comp.bugs.4bsd many moons ago, but is still relevant. The bug is in the 386bsd make, might be applicable to BSDI's system also. From: jfw@eddie.mit.edu (John Woods) Newsgroups: comp.bugs.4bsd Subject: Bug in make (4.3Reno/NET2) Message-ID: <1992Mar17.052343.7513@eddie.mit.edu> Date: 17 Mar 92 05:23:43 GMT Sender: news@eddie.mit.edu (Usenet News) Reply-To: jfw@eddie.mit.edu (John Woods) Organization: MIT EECS/ECF Facility, Cambridge Mass Lines: 32 There is a bug in the new make from 4.3Reno and also present in the Net2 release (as found on uunet). A command line argument consisting of a lone dash (-) causes an infinite loop ("make - make" was an excellent test case). I believe the following patch fixes the bug; it still represents what I would call unwarranted chumminess with the library. The fix is to keep getopt() from being asked to re-examine the - argument, which it will again call an error and not advance optind past... *** main.c.orig Mon Mar 16 20:19:13 1992 --- main.c Mon Mar 16 20:20:52 1992 *************** *** 280,286 **** if (!**argv) Punt("illegal (null) argument."); if (**argv == '-') { ! optind = 0; goto rearg; } (void)Lst_AtEnd(create, (ClientData)*argv); --- 280,289 ---- if (!**argv) Punt("illegal (null) argument."); if (**argv == '-') { ! if ((*argv)[1]) ! optind = 0; /* -flag... */ ! else ! optind = 1; /* - */ goto rearg; } (void)Lst_AtEnd(create, (ClientData)*argv);