*BSD News Article 35630


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!usc!elroy.jpl.nasa.gov!ucla-cs!geoff
From: geoff@ficus.cs.ucla.edu (Geoff Kuenning)
Subject: Re: Widespread bug in rpc-lib
Message-ID: <1994Aug31.180556.16857@cs.ucla.edu>
Sender: usenet@cs.ucla.edu (Mr Usenet)
Nntp-Posting-Host: exeter.cs.ucla.edu
Organization: UCLA, Computer Science Department
References: <3407du$ihe@nz12.rz.uni-karlsruhe.de>
Date: Wed, 31 Aug 94 18:05:56 GMT
Lines: 25

In article <3407du$ihe@nz12.rz.uni-karlsruhe.de>
Thomas.Koenig@ciw.uni-karlsruhe.de writes:

>         if (rlen == -1 && errno == EINTR)
>                 goto again;
>         if (rlen < 4*sizeof(u_long))
>                 return (FALSE);
> 
> The fix is easy; just change the appropriate line to
> 
> 	if (rlen < (int) (4*sizeof(u_long)))

Except this is the wrong fix!  The correct fix is to change the code
as follows:

	if (rlen < 0) {
		if (errno == EINTR)
			goto again;
		else
			return (FALSE);
	}
	else if (rlen < 4*sizeof(u_long))
		return (FALSE);
-- 
	Geoff Kuenning	geoff@ficus.cs.ucla.edu	geoff@ITcorp.com