From owner-cvs-src@FreeBSD.ORG Tue Dec 19 11:21:32 2006 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4FF4E16A40F; Tue, 19 Dec 2006 11:21:32 +0000 (UTC) (envelope-from bde@zeta.org.au) Received: from mailout2.pacific.net.au (mailout2-3.pacific.net.au [61.8.2.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id E42BF43CA5; Tue, 19 Dec 2006 11:21:31 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.2.163]) by mailout2.pacific.net.au (Postfix) with ESMTP id 361066E08E; Tue, 19 Dec 2006 22:21:22 +1100 (EST) Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailproxy2.pacific.net.au (Postfix) with ESMTP id 63EFD27406; Tue, 19 Dec 2006 22:21:22 +1100 (EST) Date: Tue, 19 Dec 2006 22:21:16 +1100 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Craig Rodrigues In-Reply-To: <200612190155.kBJ1tkFh076892@repoman.freebsd.org> Message-ID: <20061219202608.B9060@delplex.bde.org> References: <200612190155.kBJ1tkFh076892@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/fs/msdosfs bpb.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Dec 2006 11:21:32 -0000 On Tue, 19 Dec 2006, Craig Rodrigues wrote: > rodrigc 2006-12-19 01:55:45 UTC > > FreeBSD src repository > > Modified files: > sys/fs/msdosfs bpb.h > Log: > Fix get_ulong() macro on AMD64 (or any little-endian 64-bit platform). > This bug caused vn_stat() to fail on files larger than 2gb on msdosfs > filesystems on AMD64. > > PR: 106703 > Tested by: Axel Gonzalez > MFC after: 3 days > > Revision Changes Path > 1.12 +1 -5 src/sys/fs/msdosfs/bpb.h This breaks many more cases than it fixes, by removing support for arches with strict alignment requirements. It fixes little-endian arches with 64-bit longs and no strict alignment requirements (mainly amd64) almost accidentally by not using the broken generic getulong() macro for them. It freshly breaks all little-endian arches with strict alignment requirements (mainly ia64). The overflow bug remains unchanged. It now affects all non-little-endian arches with 64-bit longs (mainly sparc64). It is fixed in practice by the patch in the PR which is in the next commit (rev.1.13), but that patch has has some style bugs and is logically wrong. It makes a line too long and fixes up overflow after overflow has already occurred. I discussed this with another committer in private (?) mail but apparently frightened him by trying to explain the bug and various correct fixes for it in detail. Bruce