From nobody Fri May 26 21:26:14 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QSdJl0FTQz4THJV; Fri, 26 May 2023 21:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QSdJk3Fydz3Lhb; Fri, 26 May 2023 21:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1685136374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EjqiMrIVQ74VL3dqa/1bMEfcJ6R6BhAV3dvzW1Pwkm0=; b=K41fZyrHSuoqbrSwQngWdM/e4VofkVEMRMOyJkqAY8MWiWVE/XFwTy8HmcS76vDdXhNgHP RsgWpD9o5c6xvon4OY6wUfPVuWAdOiXpL8TxFOb8h/sQfO+/gi5KUxAu8yK6i/vlXPoF8q YjtxuYKTUmdY8nRe62FY/+g1kji/2f7AJfXtJ0GE9+WIV6zUMA6+hKPTBAD/RIku6DPSUk zTm7/cc6tHY+lqCRpkHK+J3E4SZ+y3x6dPT1KWhVkG3ZtzkUTtMut5pzM2gOO/N1ReD/W6 wGNO4bW8gZy8eicQiFdw0gywpcJ4i6bhDvbMSitbbmFOGl15CpaIpNwtSAEyGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1685136374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EjqiMrIVQ74VL3dqa/1bMEfcJ6R6BhAV3dvzW1Pwkm0=; b=NjyOI+R7qp9OuAXPuf0hjzCMCBi1TNyoTDPmQ8sRgsq7DK3lnmsT8ytxZPBYExp9+bnULU bX8RWnKqUKkCKBpOvBneefzXjsDFlbRoUcmyU5z7FgyNiv76lHSEIlCLUu3S4W3C1/MMAs /xBKtWrRih4wP5EEcxik5/z1gMxNUNpv55qWSF38N2pG8/MYoSp0Nc5dOPj/6lzIlEdTmZ uVUUagiHA/LFoH+QiodPgz2vz5wE0wewfT0VgrNBZqvc8dClVSChc4QGGMptbiAI3LyFUs 1dLe2QzBI0AtPxY0GFnYGzpp0NjfPtgo4NBE6ucr2BelRre/fmcrvmUqdUtvnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1685136374; a=rsa-sha256; cv=none; b=K7JNcGJOy6zgid0L9PYpfn1Eks0SMT+T/zT6MLzICxGPeqOGolUs4n+PeKapQ+ehPg6sKR yED+0dSgDVV0BQUJhcZoznqLxZnWLf0wbPMoIDhJmjgF8YF9M/U9Z6uaU/Xm2h2F9iB30S l2Xgxf3oQVkj1oF+NPHPV3ykz9zgowKqXPbxHAsPWRMbcIlVclMwGlclbZ92Rptfxv0yrI aNyb9E2q4NytdGGHv6TIo4zqRUqLuguhyP4w8T9UutrMl1rlGtxC0XxoEtqHyl5oZDNRau xVghlHR0ClieF+vqGncxEzEfF+hxh6/z4EM4nRx4FYe//s1NacSzdljoxjPXPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QSdJk2FJRzN9P; Fri, 26 May 2023 21:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34QLQEen028716; Fri, 26 May 2023 21:26:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34QLQEF3028715; Fri, 26 May 2023 21:26:14 GMT (envelope-from git) Date: Fri, 26 May 2023 21:26:14 GMT Message-Id: <202305262126.34QLQEF3028715@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 4a3834e31fdf - stable/13 - Fix size differences between architectures of the UFS/FFS CGSIZE macro value. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4a3834e31fdf3a3bcd9413fa4d5d1c66cfbe02a2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=4a3834e31fdf3a3bcd9413fa4d5d1c66cfbe02a2 commit 4a3834e31fdf3a3bcd9413fa4d5d1c66cfbe02a2 Author: Kirk McKusick AuthorDate: 2023-05-15 19:56:27 +0000 Commit: Kirk McKusick CommitDate: 2023-05-26 21:25:50 +0000 Fix size differences between architectures of the UFS/FFS CGSIZE macro value. Reported-by: Tijl Coosemans Tested-by: Tijl Coosemans and Peter Holm Sponsored-by: The FreeBSD Foundation (cherry picked from commit 0a6e34e950cd5889122a199c34519b67569be9cc) --- sbin/fsck_ffs/fsutil.c | 4 ++-- sbin/fsck_ffs/pass5.c | 4 ++-- sbin/growfs/growfs.c | 2 +- sbin/newfs/mkfs.c | 5 +++-- sys/ufs/ffs/fs.h | 7 +++---- usr.sbin/makefs/ffs/mkfs.c | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sbin/fsck_ffs/fsutil.c b/sbin/fsck_ffs/fsutil.c index b5ca478fbc46..bed87299a3cf 100644 --- a/sbin/fsck_ffs/fsutil.c +++ b/sbin/fsck_ffs/fsutil.c @@ -1037,7 +1037,7 @@ check_cgmagic(int cg, struct bufarea *cgbp) CHK(cgp->cg_ndblk, !=, sblock.fs_size - cgbase(&sblock, cg), "%jd"); } - start = &cgp->cg_space[0] - (u_char *)(&cgp->cg_firstfield); + start = sizeof(*cgp); if (sblock.fs_magic == FS_UFS2_MAGIC) { CHK(cgp->cg_iusedoff, !=, start, "%jd"); } else if (sblock.fs_magic == FS_UFS1_MAGIC) { @@ -1097,7 +1097,7 @@ rebuild_cg(int cg, struct bufarea *cgbp) cgp->cg_ndblk = sblock.fs_fpg; else cgp->cg_ndblk = sblock.fs_size - cgbase(&sblock, cg); - start = &cgp->cg_space[0] - (u_char *)(&cgp->cg_firstfield); + start = sizeof(*cgp); if (sblock.fs_magic == FS_UFS2_MAGIC) { cgp->cg_iusedoff = start; } else if (sblock.fs_magic == FS_UFS1_MAGIC) { diff --git a/sbin/fsck_ffs/pass5.c b/sbin/fsck_ffs/pass5.c index 61be54ed54ed..58143a0e8211 100644 --- a/sbin/fsck_ffs/pass5.c +++ b/sbin/fsck_ffs/pass5.c @@ -116,7 +116,7 @@ pass5(void) } } } - basesize = &newcg->cg_space[0] - (u_char *)(&newcg->cg_firstfield); + basesize = sizeof(*newcg); if (sblock.fs_magic == FS_UFS2_MAGIC) { newcg->cg_iusedoff = basesize; } else { @@ -131,7 +131,7 @@ pass5(void) fs->fs_old_cpg * sizeof(int32_t); newcg->cg_iusedoff = newcg->cg_old_boff + fs->fs_old_cpg * fs->fs_old_nrpos * sizeof(u_int16_t); - memset(&newcg->cg_space[0], 0, newcg->cg_iusedoff - basesize); + memset(&newcg[1], 0, newcg->cg_iusedoff - basesize); } inomapsize = howmany(fs->fs_ipg, CHAR_BIT); newcg->cg_freeoff = newcg->cg_iusedoff + inomapsize; diff --git a/sbin/growfs/growfs.c b/sbin/growfs/growfs.c index c7ef0ced4ed6..281eec32836c 100644 --- a/sbin/growfs/growfs.c +++ b/sbin/growfs/growfs.c @@ -338,7 +338,7 @@ initcg(int cylno, time_t modtime, int fso, unsigned int Nflag) acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; - start = &acg.cg_space[0] - (u_char *)(&acg.cg_firstfield); + start = sizeof(acg); if (sblock.fs_magic == FS_UFS2_MAGIC) { acg.cg_iusedoff = start; } else { diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c index 1efada0dad17..42866f9b1426 100644 --- a/sbin/newfs/mkfs.c +++ b/sbin/newfs/mkfs.c @@ -718,7 +718,7 @@ initcg(int cylno, time_t utime) acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; - start = &acg.cg_space[0] - (u_char *)(&acg.cg_firstfield); + start = sizeof(acg); if (Oflag == 2) { acg.cg_iusedoff = start; } else { @@ -746,7 +746,8 @@ initcg(int cylno, time_t utime) howmany(fragstoblks(&sblock, sblock.fs_fpg), CHAR_BIT); } if (acg.cg_nextfreeoff > (unsigned)sblock.fs_cgsize) { - printf("Panic: cylinder group too big\n"); + printf("Panic: cylinder group too big by %d bytes\n", + acg.cg_nextfreeoff - (unsigned)sblock.fs_cgsize); exit(37); } acg.cg_cs.cs_nifree += sblock.fs_ipg; diff --git a/sys/ufs/ffs/fs.h b/sys/ufs/ffs/fs.h index 8069b2db54bd..b2ed2051471c 100644 --- a/sys/ufs/ffs/fs.h +++ b/sys/ufs/ffs/fs.h @@ -534,11 +534,11 @@ CTASSERT(sizeof(struct fs) == 1376); * cylinder group and the (struct cg) size. */ #define CGSIZE(fs) \ - /* base cg */ (sizeof(struct cg) + sizeof(int32_t) + \ + /* base cg */ (sizeof(struct cg) + \ /* old btotoff */ (fs)->fs_old_cpg * sizeof(int32_t) + \ /* old boff */ (fs)->fs_old_cpg * sizeof(u_int16_t) + \ /* inode map */ howmany((fs)->fs_ipg, NBBY) + \ - /* block map */ howmany((fs)->fs_fpg, NBBY) +\ + /* block map */ howmany((fs)->fs_fpg, NBBY) + sizeof(int32_t) + \ /* if present */ ((fs)->fs_contigsumsize <= 0 ? 0 : \ /* cluster sum */ (fs)->fs_contigsumsize * sizeof(int32_t) + \ /* cluster map */ howmany(fragstoblks(fs, (fs)->fs_fpg), NBBY))) @@ -585,8 +585,7 @@ struct cg { u_int32_t cg_ckhash; /* check-hash of this cg */ ufs_time_t cg_time; /* time last written */ int64_t cg_sparecon64[3]; /* reserved for future use */ - u_int8_t cg_space[1]; /* space for cylinder group maps */ -/* actually longer */ + /* actually longer - space used for cylinder group maps */ }; /* diff --git a/usr.sbin/makefs/ffs/mkfs.c b/usr.sbin/makefs/ffs/mkfs.c index ef745fe3c196..d48dc65aac68 100644 --- a/usr.sbin/makefs/ffs/mkfs.c +++ b/usr.sbin/makefs/ffs/mkfs.c @@ -634,7 +634,7 @@ initcg(uint32_t cylno, time_t utime, const fsinfo_t *fsopts) acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk >> sblock.fs_fragshift; - start = &acg.cg_space[0] - (u_char *)(&acg.cg_firstfield); + start = sizeof(acg); if (Oflag == 2) { acg.cg_iusedoff = start; } else {