From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1bcdzC-0007ZC-SB for mharc-grub-devel@gnu.org; Wed, 24 Aug 2016 15:37:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcdzA-0007Z6-JD for grub-devel@gnu.org; Wed, 24 Aug 2016 15:37:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcdz7-00034S-Eu for grub-devel@gnu.org; Wed, 24 Aug 2016 15:37:16 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:36160) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcdz7-00034O-7K for grub-devel@gnu.org; Wed, 24 Aug 2016 15:37:13 -0400 Received: by mail-lf0-x241.google.com with SMTP id 33so1376956lfw.3 for ; Wed, 24 Aug 2016 12:37:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=Qv51YLc8Mc3tKRBH3Oylg0vYQjQOUGFZlYt3KCJ4q0g=; b=m0Um2vN33l1uG4YAqpFCgfukwBZ+xgZsRzdKIlDdSVeqrhfRmltEoCSd91SM6ribXQ 28ZpuB/Q9UAhJIwCvsvkHLF59Xnh/qe46xtNVz3psnOML1DbbteVQbj/3HwDmmiUxTsk HahF7K/ppYkn5b9CYiaXHFR4c7PMJ2dhvq2rTDIfdFumwVmS4VI9QPs/ysZ4HdeRdlDD e34g7RgzzsboN7mmMXBOzvX6VMo3w1dBndi3BdPxey3qMqQg1DF4n091s3QEwPPntJ68 77vOsRhy8DGRSNXFQH0pgBZxiHdskWUbrP8oNMpGpjphLxjqQWtEmsv3dyPrm5zHwjYv 0hDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=Qv51YLc8Mc3tKRBH3Oylg0vYQjQOUGFZlYt3KCJ4q0g=; b=Wk/r3aVbcl98xHSuz10KE4DrtyGbFbOHnInSQohd3a3AF4XLiCQwZ9znHuqYa5ypfN jE+Q/lM2vjdl2kTKQVF0cX7qIxwBp7axR7SVKT1je8IWysMkOtW+lIcesG77AbHy11+N ZB5F67EOnz8N49Cc4omedLtuGe9eD32PmjVGg0bcl2vBxF3j0/sXYqi6S8YmzxEwjP8y n4hZf/kfkqKC9hby/QCOBHl7VD4/Gt2c9nVdsmIbAzbcXmFJCUh7bvBn54ZYY0v/EuPN oXx0skJZ1U9oQ/nzENpyCjrJQW20yDVvYS5ReZ88RXtTlnVBdWmOqEMSZKhVCGiobshp Ht8A== X-Gm-Message-State: AE9vXwOAlgQEqFSMGr5b39KaqBLLgtJGMMV/Czvbaax5obV5kJYK8oCsnPOZhJ1KgRA0uA== X-Received: by 10.25.92.68 with SMTP id q65mr1166223lfb.71.1472067432016; Wed, 24 Aug 2016 12:37:12 -0700 (PDT) Received: from [192.168.1.44] (ppp109-252-91-231.pppoe.spdop.ru. [109.252.91.231]) by smtp.gmail.com with ESMTPSA id 90sm2274352lfw.30.2016.08.24.12.37.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Aug 2016 12:37:11 -0700 (PDT) Subject: Re: [PATCH] FAT/exFAT: Fix wrong size detection for files > 4GB To: grub-devel@gnu.org References: <1472045782-11346-1-git-send-email-carlo@caione.org> <1472045782-11346-2-git-send-email-carlo@caione.org> From: Andrei Borzenkov X-Enigmail-Draft-Status: N1110 Message-ID: Date: Wed, 24 Aug 2016 22:37:10 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <1472045782-11346-2-git-send-email-carlo@caione.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c07::241 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Aug 2016 19:37:17 -0000 24.08.2016 16:36, Carlo Caione пишет: > From: Carlo Caione > > For exFAT the file size can be > 4GB. The 'grub_fat_data' is still > marking the 'file_size' as grub_ssize_t that is always 32bit when > compiling for i386-pc also when using exFAT. > > This is causing a problem when trying to open in loopback a > 4GB file > from an exFAT partition. > > Fix this modifying the size of the 'file_size' according to the > MODE_EXFAT define. > > Signed-off-by: Carlo Caione > --- > grub-core/fs/fat.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c > index 79fe864..d5212c2 100644 > --- a/grub-core/fs/fat.c > +++ b/grub-core/fs/fat.c > @@ -183,7 +183,11 @@ struct grub_fat_data > grub_uint32_t num_clusters; > > grub_uint8_t attr; > - grub_ssize_t file_size; > +#ifndef MODE_EXFAT > + grub_uint32_t file_size; > +#else > + grub_uint64_t file_size; > +#endif > grub_uint32_t file_cluster; > grub_uint32_t cur_cluster_num; > grub_uint32_t cur_cluster; > Looks correct except I'd use conditon "ifdef MODE_EXFAT", negative condition looks strange in such cases.