From owner-freebsd-i386@FreeBSD.ORG Thu Jun 10 10:18:01 2004 Return-Path: Delivered-To: freebsd-i386@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 65EEF16A4CE; Thu, 10 Jun 2004 10:18:01 +0000 (GMT) Received: from mailout1.pacific.net.au (mailout1.pacific.net.au [61.8.0.84]) by mx1.FreeBSD.org (Postfix) with ESMTP id A355C43D31; Thu, 10 Jun 2004 10:18:00 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.0.87])i5AAHv4u026189; Thu, 10 Jun 2004 20:17:57 +1000 Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) i5AAHtLS002939; Thu, 10 Jun 2004 20:17:56 +1000 Date: Thu, 10 Jun 2004 20:17:54 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Dan Fletcher In-Reply-To: <200406100218.i5A2IfNe034850@www.freebsd.org> Message-ID: <20040610200723.W8324@gamplex.bde.org> References: <200406100218.i5A2IfNe034850@www.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-gnats-submit@freebsd.org cc: freebsd-i386@freebsd.org Subject: Re: i386/67773: 5.x series - md5 on dev no longer works e.g. md5 /dev/ad2 X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2004 10:18:01 -0000 On Thu, 10 Jun 2004, Dan Fletcher wrote: > >Description: > I work computer forensics for a law enforcement agency. I use FreeBSD extensively. Tried to upgrade to 5.x series for the SATA support. However the md5 checksum no longer works on raw devices. I have tried it with 5.0 and 5.2.1, neither work. > > Worked fine with 4.x series. > > cksum of a raw device works fine, e.g. > cksum /dev/ad2 > >How-To-Repeat: > Try to md5 checksum any raw device: > > md5 /dev/fd0 > md5 /dev/ad2, etc. This seems to have been broken in at least rev.1.14 of libmd/mdXhl.c by using fstat() to determine a wrong size for the file. fstat() only gives the file size for regular files that don't change while being read. Pipes are handled differently, so the breakage doesn't affect them. Regular files that change while being read aren't handled very well anyway. As a workaround, pipe the file to md5 (e.g., cat /dev/ad2 | md5). Bruce