From nobody Thu May 08 16:03:55 2025 X-Original-To: dev-commits-src-all@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 4ZtcPm1j2Zz5vH0r; Thu, 08 May 2025 16:03:56 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZtcPm12g2z4LRx; Thu, 08 May 2025 16:03:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746720236; 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=PHaORFo23TnfH11Y2A7LAEb3v8kOWYYkFlz+FpdohPc=; b=ar1pS29gzAzga8wQX8EU/c1uOv4Flr8QAOQNLM5b0OmiY4abfQU5HDxUg+Z7xWxcmEskx4 HD/383lzXh7ZatdyTxH2qeC6Foz6jeGgUoTDFefL40WpqWEY1V5K2FCli7odAZliK5GBfD UDxiq9iAIkDdDyxZ4/ekSd0qGiJfyvSLLIzyYQS2O6VVXjrujfmo6KmQXIBrYqPMFNKfuz wnFEVqc53pTrFe5LPxHPdnh/8WIS0IQH2jqSzFeioNzLLpezWiSNEi+abWFBHy0X7Vydne 0XkAh+yGsG+2szx2Jw+ajFJKEts5CRghW3kK+6r4T43YJQ9CwHpPvecLCQPe1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746720236; 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=PHaORFo23TnfH11Y2A7LAEb3v8kOWYYkFlz+FpdohPc=; b=yCdUB4bm+T3S2xsmufUcYUQDySt4KlnVuJ0eCtYEM1qoE2N3EmjaByPJ9iPhm4y9TZu0I/ 3B7LsTUrjs3rJYc6OtzHg0nEmFyVs+TxIV2n6ZyQhsq6XmoYXrz/AQihjutHnu7h6hPneG bXBqqstXdyuFjbE66FoM7gQfD6OJ9P2pdAvP19E9wvYW4FwH6cLiAqLfcgcflCna6bY46u G2CiKCWh2+Hbl9iYgOMaOtqywyXxQATKzDNJJ72badjxcMQ9E2iAOgflKA2vFpLOWKx6ow u7rRfRsRkUxVh41cLtKrJsUXVVnNPcme/DOTThAaGEhRLUbATnN2bX07zyKyUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746720236; a=rsa-sha256; cv=none; b=rds+87JVg5r4xKHDum4z17gbAd3JQm96GBXmukTqi+jPVRPJtyhAm+FB+TRw3xcoYmNWh3 RKdWjFMQRHbPOJLLw5xmK4UgH1KuNmDfnykOiOBUBq9mIqRxMIeRPZ57GGC7e5FxrAUOYM btAZFIb4b1T9IlZ9DIfQj1VTPQ9m5uSNUoKLyIj/xl8rdOOsVLalgJI9TyBRTdOf5NquqU lfuMlxW+lLI9GSYHfkzXEwGn504m1lmi6Y1r4KRjrCnrm4dWqpMPmImhY0M9agLzDDaq/X v5lZBi+Gy5j0LIg9HLyzB+pjAOkiHH41C5JG2NWFQCtlvAb6sDn/QLhAdGeamw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZtcPm0SCDz5cy; Thu, 08 May 2025 16:03:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 548G3tq0073356; Thu, 8 May 2025 16:03:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 548G3t6u073353; Thu, 8 May 2025 16:03:55 GMT (envelope-from git) Date: Thu, 8 May 2025 16:03:55 GMT Message-Id: <202505081603.548G3t6u073353@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 764ccf410c3c - main - makefs: Ensure that FFS superblocks are reproducible List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 764ccf410c3c5453c4656113d75cd81fcf01828d Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=764ccf410c3c5453c4656113d75cd81fcf01828d commit 764ccf410c3c5453c4656113d75cd81fcf01828d Author: Mark Johnston AuthorDate: 2025-05-08 15:49:53 +0000 Commit: Mark Johnston CommitDate: 2025-05-08 15:49:53 +0000 makefs: Ensure that FFS superblocks are reproducible The superblock structure has space reserved for a pointer to an in-memory structure that gets created at mount time. makefs populates it since that simplifies code elsewhere. However, the pointer value ends up in the output file, which breaks reproducibility. Zero the field when writing the superblock instead, as its on-disk value is ignored. Reviewed by: emaste MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50196 --- usr.sbin/makefs/ffs/mkfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/usr.sbin/makefs/ffs/mkfs.c b/usr.sbin/makefs/ffs/mkfs.c index b2f752102a69..81e3da5725c8 100644 --- a/usr.sbin/makefs/ffs/mkfs.c +++ b/usr.sbin/makefs/ffs/mkfs.c @@ -579,13 +579,21 @@ ffs_write_superblock(struct fs *fs, const fsinfo_t *fsopts) { int size, blks, i, saveflag; uint32_t cylno; - void *space; + void *info, *space; char *wrbuf; saveflag = fs->fs_flags & FS_INTERNAL; fs->fs_flags &= ~FS_INTERNAL; - memcpy(writebuf, &sblock, sbsize); + /* + * Write out the superblock. Blank out the summary info field, as it's + * a random pointer that would make the resulting image unreproducible. + */ + info = fs->fs_si; + fs->fs_si = NULL; + memcpy(writebuf, fs, sbsize); + fs->fs_si = info; + if (fsopts->needswap) ffs_sb_swap(fs, (struct fs*)writebuf); ffs_wtfs(fs->fs_sblockloc / sectorsize, sbsize, writebuf, fsopts);