*BSD News Article 12193


Return to BSD News archive

Newsgroups: comp.os.386bsd.bugs
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!wupost!sdd.hp.com!apollo.hp.com!netnews
From: sommerfeld@apollo.hp.com (Bill Sommerfeld)
Subject: Re: cvs 1.3 bugfix
Sender: usenet@apollo.hp.com (Usenet News)
Message-ID: <SOMMERFELD.93Mar3180839@blatt.apollo.hp.com>
In-Reply-To: rich@Rice.edu's message of Wed, 3 Mar 1993 17:40:46 GMT
Date: Wed, 3 Mar 1993 23:05:47 GMT
Lines: 46
References: <RICH.93Mar3114046@omicron.Rice.edu>
Nntp-Posting-Host: snarfblatt.ch.apollo.hp.com
Organization: Hewlett Packard

In article <RICH.93Mar3114046@omicron.Rice.edu> rich@Rice.edu (Richard Murphey) writes:

   Newsgroups: comp.os.386bsd.bugs
   Path: apollo.hp.com!sdd.hp.com!usc!wupost!newsfeed.rice.edu!rice!news.Rice.edu!rich
   From: rich@Rice.edu (Richard Murphey)
   Sender: news@rice.edu (News)
   Reply-To: Rich@Rice.edu
   Organization: Department of Electrical and Computer Engineering, Rice
	   University
   Date: Wed, 3 Mar 1993 17:40:46 GMT
   Lines: 30


   Upon invocation, cvs just spins, consuming CPU time.  The patch below
   fixes this problem.

   For the << operator, the result is undefined if the right hand operand
   is greater than the width of the left hand operand.

   Rich

   *** lib/sighandle.c~    Tue Mar 31 15:55:14 1992
   --- lib/sighandle.c     Wed Mar  3 11:03:04 1993
   ***************
   *** 112,118 ****

     #ifdef POSIX
	   (void) sigfillset(&sigset_test);
   !       for (i = 1; sigismember(&sigset_test, i) == 1; i++)
		   ;
	   if (i < SIGMAX)
		   i = SIGMAX;
   --- 112,119 ----

     #ifdef POSIX
	   (void) sigfillset(&sigset_test);
   !       for (i = 1; (   sigismember(&sigset_test, i) == 1
   !                    && (i < sizeof(sigset_test) * 8)); i++)
		   ;
	   if (i < SIGMAX)
		   i = SIGMAX;

I think this is a bug in the sigismember macro, not in cvs....