From owner-cvs-all Fri Jul 19 20:51:59 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B58A337B400; Fri, 19 Jul 2002 20:51:53 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FBED43E42; Fri, 19 Jul 2002 20:51:53 -0700 (PDT) (envelope-from peter@FreeBSD.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g6K3prJU011726; Fri, 19 Jul 2002 20:51:53 -0700 (PDT) (envelope-from peter@freefall.freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g6K3pr8f011725; Fri, 19 Jul 2002 20:51:53 -0700 (PDT) Message-Id: <200207200351.g6K3pr8f011725@freefall.freebsd.org> From: Peter Wemm Date: Fri, 19 Jul 2002 20:51:53 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/boot/efi/libefi efinet.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG peter 2002/07/19 20:51:53 PDT Modified files: sys/boot/efi/libefi efinet.c Log: Work around some nasty bugs on the [beta] Itanium2's E1000 UNDI driver. Bug#1: The GetStatus() function returns radically different pointers that do not match any packets we transmitted. I think it might be pointing to a copy of the packet or something. Since we do not transmit more than one packet at a time, just wait for "anything". Bug#2: The Receive() function takes a pointer and a length. However, it either ignores the length or otherwise does bad things and writes outside of ptr[0] through ptr[len-1]. This is bad and causes massive stack corruption for us since we are receiving packets into small buffers on the stack. Instead, Receive() into a large enough buffer and bcopy the data to the requested area. Revision Changes Path 1.4 +20 -5 src/sys/boot/efi/libefi/efinet.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message