From owner-freebsd-current Sat Mar 1 17:25:33 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0615537B401; Sat, 1 Mar 2003 17:25:32 -0800 (PST) Received: from pit.databus.com (p70-227.acedsl.com [66.114.70.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B9CF43FA3; Sat, 1 Mar 2003 17:25:31 -0800 (PST) (envelope-from barney@pit.databus.com) Received: from pit.databus.com (localhost [127.0.0.1]) by pit.databus.com (8.12.7/8.12.7) with ESMTP id h221PUFr065274; Sat, 1 Mar 2003 20:25:30 -0500 (EST) (envelope-from barney@pit.databus.com) Received: (from barney@localhost) by pit.databus.com (8.12.7/8.12.7/Submit) id h221PUbG065273; Sat, 1 Mar 2003 20:25:30 -0500 (EST) (envelope-from barney) Date: Sat, 1 Mar 2003 20:25:30 -0500 From: Barney Wolff To: Jens Rehsack Cc: Juli Mallett , current@FreeBSD.ORG Subject: Re: PATCH: type errors in src-tree Message-ID: <20030302012530.GA65162@pit.databus.com> References: <3E5EA13E.9020208@liwing.de> <3E60F1CF.2030400@liwing.de> <20030301155546.A39174@FreeBSD.org> <3E612F7F.1090002@liwing.de> <20030301233642.GA64401@pit.databus.com> <3E614A06.5070403@liwing.de> <20030301180920.A53976@FreeBSD.org> <3E61560D.2070205@liwing.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E61560D.2070205@liwing.de> User-Agent: Mutt/1.4i X-Scanned-By: MIMEDefang 2.30 (www . roaringpenguin . com / mimedefang) Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is an example of what I was pointing out: On Sun, Mar 02, 2003 at 01:53:33AM +0100, Jens Rehsack wrote: ... > @@ -1444,22 +1420,19 @@ > * none - response sent > * > */ > -void > -send_resp ( intf, Hdr, resp ) > - int intf; > - Snmp_Header *Hdr; > - u_char *resp; > +static void > +send_resp ( const int intf, Snmp_Header *Hdr, char *resp ) > { > int n; > > - if ( ilmi_fd[intf] > 0 ) { > - n = write ( ilmi_fd[intf], (caddr_t)&resp[1], resp[0] ); > + if ( ilmi_fd[intf] > 0 ) { /* FIXME: does ilmi_fd[intf] exists? out of range? */ > + n = write ( ilmi_fd[intf], resp+1, resp[0] ); ... Here's a case where it matters whether something is u_char or char. write(2) takes a size_t as its third arg, and extension of a char to that may not be the same as for u_char, for example on Sparc. If the response is ever >127 bytes, this will fail. You're going to have to look carefully at how things are used to see when char is appropriate and when u_char is necessary. -- Barney Wolff http://www.databus.com/bwresume.pdf I'm available by contract or FT, in the NYC metro area or via the 'Net. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message