Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp432085ybl; Fri, 10 Jan 2020 00:59:44 -0800 (PST) X-Google-Smtp-Source: APXvYqyiMvjvP4DJNEzM79J+13X/i0PbDSlCYHlCd0sbpZwWSEcx7qStydDoFNYtU8NdrN+Kf8Oe X-Received: by 2002:a05:6830:1042:: with SMTP id b2mr1650750otp.306.1578646783840; Fri, 10 Jan 2020 00:59:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578646783; cv=none; d=google.com; s=arc-20160816; b=Q4HVIVw9LpXeO6G7Ly0JOGYZHrU13Y8cM4cHY+HDb6HMDhV2H0epMAs/+BUxNphQZB 93ZULCRQmlAMCOSL3AnysoDKs9dRNX+FLgkH+9b852GECv0VZOGahSauhEITDsc471T2 bFU0zI3OtEciCNOUS4j/YlH351Id2yhI/atqzuqcSNmPLk0XpwNGT1cMj3rsRdvku9Fu 5ICior6wlWAd3nB7J8MRdHqPLRsF409Px0COxv/OiWOyWL7w079RJY9QBqBElQ9jvZSe 0exyw0oLx2lmLnv2joO/+vyXZPVkirml/FFkK5E+pExz0jo0UDjnPB5m5PyipTU5tuPo Xu8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date; bh=UrddlVi7s18FliW2fdQKxqzykqJFDpFfdsGe4o3SWNs=; b=C/CD2nQMjaVZFn8Hjw/z0S4GiR72c96EcEjjanP390wv8CBn3zA0AwzC7c2By3no0z yORyPssWIyteHxLo+ANFLjvxNx5FTWpPwt6fO2YgC2J+glQdpO9eXKoJo3wnPr8tPU4d oikApYDx3fABW58n5M1exOHjlvIPClg3I3yoTwF2TdHpcrqNe3j6A6FeuWvSDs/SzXtX Ck3vgvX/yNgEAvQxyA2pVg0T01FhrtofmIKDqN3b6VUMK90GQtxv4gmLMxSsQdSOuwUE KnzTYFCl86QSjy/b/01DAnzwK/rs4JYGSZU5MbpY4FeOXw0bkoQzNqi1P6qtfyZyDmkm YsEA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j16si855982otq.23.2020.01.10.00.59.22; Fri, 10 Jan 2020 00:59:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726694AbgAJI7V (ORCPT + 99 others); Fri, 10 Jan 2020 03:59:21 -0500 Received: from u164.east.ru ([195.170.63.164]:17320 "EHLO u164.east.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726641AbgAJI7V (ORCPT ); Fri, 10 Jan 2020 03:59:21 -0500 X-Greylist: delayed 421 seconds by postgrey-1.27 at vger.kernel.org; Fri, 10 Jan 2020 03:59:20 EST Received: by u164.east.ru (Postfix, from userid 1001) id A88614F4CEC; Fri, 10 Jan 2020 11:52:17 +0300 (MSK) Date: Fri, 10 Jan 2020 11:52:17 +0300 From: Anatoly Pugachev To: linux-ext4@vger.kernel.org Cc: Theodore Ts'o Subject: [PATCH] libext2fs: Extends commit c9a8c53b, with the same fix for ext2fs_flush2() and ext2fs_image_super_write() on a Big Endian systems. Message-ID: <20200110085217.GA7307@yogzotot> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org libext2fs: extends commit c9a8c53b, with the same fix for ext2fs_flush2() and ext2fs_image_super_write() on a Big Endian systems. As follow-up to previous discussion 'dumpe2fs / mke2fs sigserv on sparc64' Used find for files which refer to: e2fsprogs.git$ find . -name \*.c | xargs grep -cl 'gdp = ext2fs_group_desc' ./lib/ext2fs/closefs.c ./lib/ext2fs/openfs.c ./lib/ext2fs/imager.c And applied the same check for a null pointer. Tested on a debian linux with sparc64 LDOM and ppc64 LPAR. Fixes sigserv with test suite in "i_bitmaps" test. Signed-off-by: Anatoly Pugachev Signed-off-by: Theodore Ts'o --- lib/ext2fs/closefs.c | 3 ++- lib/ext2fs/imager.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c index 1d4d5b7f..58fdd5c6 100644 --- a/lib/ext2fs/closefs.c +++ b/lib/ext2fs/closefs.c @@ -339,7 +339,8 @@ errcode_t ext2fs_flush2(ext2_filsys fs, int flags) ext2fs_swap_super(super_shadow); for (j = 0; j < fs->group_desc_count; j++) { gdp = ext2fs_group_desc(fs, group_shadow, j); - ext2fs_swap_group_desc2(fs, gdp); + if (gdp) + ext2fs_swap_group_desc2(fs, gdp); } #else super_shadow = fs->super; diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c index 7fd06f74..b40fd826 100644 --- a/lib/ext2fs/imager.c +++ b/lib/ext2fs/imager.c @@ -245,7 +245,8 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd, gdp = (struct ext2_group_desc *) cp; for (j=0; j < groups_per_block*fs->desc_blocks; j++) { gdp = ext2fs_group_desc(fs, fs->group_desc, j); - ext2fs_swap_group_desc2(fs, gdp); + if (gdp) + ext2fs_swap_group_desc2(fs, gdp); } #endif @@ -257,7 +258,8 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd, gdp = (struct ext2_group_desc *) cp; for (j=0; j < groups_per_block*fs->desc_blocks; j++) { gdp = ext2fs_group_desc(fs, fs->group_desc, j); - ext2fs_swap_group_desc2(fs, gdp); + if (gdp) + ext2fs_swap_group_desc2(fs, gdp); } #endif -- 2.25.0.rc1