From nobody Fri Oct 09 00:20:36 2026 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 4j16vn2C2Qz6Z2Cb for ; Fri, 09 Oct 2026 00:20:37 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4j16vm4Yclz4Lfr for ; Fri, 09 Oct 2026 00:20:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791505236; 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=/nLbJ3Th+aSNRLW6X77YRjKCxKeE7kEyUlbk5JOS7JY=; b=XbTybGvEpy6x9Rw4QQJ1SoKPsn25kaOp3hrJJdNdmJqVCJmgmuBcgTasQEEDyFoN79vWf8 GTaPTbrYKuV1rxV3lwnABXKD65FeWxNGPcGDOm2CanlqucsIC7iocahdrcKPJRyguqGkIj qy0g+NPBYW7C+yZlNGmOEJ5JZXfFj07CjmnxjBkHzZDvE8EkXe6psysQbFfQe9Cba3f8Ux tXipI/jMCgw0Vm5AwtS2Z9ruFkty3tgeI3uVfK/egY+kzBlZA8naPvY9Q9I6sjupC6040A d2NXjnFlO7mkCkUPkVXoObZNNxZrnAMyMXLdG/4nMjm/3lpXAIrAJ/6CdACMnw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791505236; b=F5C5sluZVpikhOTk87T6ZD6eBnn3kv6uyF/1hixzPal1tUw89XYWwD5ndoXNQoJCzEwPgX ciy6HIf5A05cPKuSg2iwO2KRHIzSBrPrZ1ruMEonXEw3dwTN4Aji86ExD5We8Frzpj+Vow JpS5xIlD64otwo0kvbcu8L8bE9NA+DIPy+yS+FtqtN6wfWAILCEYnhApUIsnHbLQjKQSlg D/9dhlUoZ866llEexUhSulf7bGksrSgfzvHlSSrIxSXruv6ECf00eTfeLR+Df975NJ0ciQ 3gMOKzu842jyjjF36NqMHjeL8oeAcgR3NETOZSu9T2AQEAgJUsLIkX5MeZnxZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791505236; 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=/nLbJ3Th+aSNRLW6X77YRjKCxKeE7kEyUlbk5JOS7JY=; b=KB4w1pQn3TjnrFZR+saVlFhydyAvG0vME7vtp3PFtOABOjdIdTkox2WCZWgonlazHM/ovG akFBt93ytVdPlkVtyq1zueROKUha39hiMeslbUamwxfAyc2zRP60FIDqhlo8BsHTfQmKiE oAjLqUNyhV53Br+Zo946ci+lB4/TeraoR4iAcT97OGtwIi9gFpFwoOiy2UrWWjWbwvz/FM fP7vRMtaVpDlSUNJJsPjni+sX/x9xt/KW6iABHwryCagFGoonbw4gIh8frOljON1GMThyN UMsD5MNsy9MgyZ7G5jd7QsT/7JYllJpfzN+/tYb3IMHncoKu+LiTqssJ32jnjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4j16vm2Vvwz12qw for ; Fri, 09 Oct 2026 00:20:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19f16 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 09 Oct 2026 00:20:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 16056a0ac98b - stable/14 - cd9660: Adjust parsing of timestamps in the extended atttributes record 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 16056a0ac98b1b94b47dce0c2e2fa1cc3ab9493c Auto-Submitted: auto-generated Date: Fri, 09 Oct 2026 00:20:36 +0000 Message-Id: <6ac83354.19f16.45d92087@gitrepo.freebsd.org> The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=16056a0ac98b1b94b47dce0c2e2fa1cc3ab9493c commit 16056a0ac98b1b94b47dce0c2e2fa1cc3ab9493c Author: John Baldwin AuthorDate: 2026-06-23 15:51:43 +0000 Commit: John Baldwin CommitDate: 2026-10-08 18:23:53 +0000 cd9660: Adjust parsing of timestamps in the extended atttributes record The extended attribute record includes four different timestamps: file creation, file modification, file expiration, and file effective date. Only the first two are meaningful for stat(2). The latter two (if handled) would presumably affect if a file is visible for not. Previously, the logic here was a bit contorted and made use of the effective time. It also seemed to treat the creation time as a change time timestamp. Instead, simplify the logic such that the modification time is set to either the modification time (if present), or the creation time. The access and change times are then set to the modification time. NB: This is not used if RockRidge extensions are present, and makefs does not generate the extended attributes record. Differential Revision: https://reviews.freebsd.org/D57748 (cherry picked from commit f6dd01b417dcf247904b4653063f5fb7f22a0878) --- sys/fs/cd9660/cd9660_node.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/sys/fs/cd9660/cd9660_node.c b/sys/fs/cd9660/cd9660_node.c index 0fbd9916a17a..0b2d2e820e03 100644 --- a/sys/fs/cd9660/cd9660_node.c +++ b/sys/fs/cd9660/cd9660_node.c @@ -180,12 +180,22 @@ cd9660_deftstamp(struct iso_directory_record *isodir, struct iso_node *inop, if (ftype != ISO_FTYPE_HIGH_SIERRA && isonum_711(ap->version) == 1) { - if (!cd9660_tstamp_conv17(ap->ftime,&inop->inode.iso_atime)) - cd9660_tstamp_conv17(ap->ctime,&inop->inode.iso_atime); - if (!cd9660_tstamp_conv17(ap->ctime,&inop->inode.iso_ctime)) - inop->inode.iso_ctime = inop->inode.iso_atime; - if (!cd9660_tstamp_conv17(ap->mtime,&inop->inode.iso_mtime)) - inop->inode.iso_mtime = inop->inode.iso_ctime; + /* + * The extended attributes include create + * (ctime), modify (mtime), expiration + * (xtime), and effective (ftime) timstamps. + * Only the first two are meaningful for struct + * stat. + */ + struct timespec birthtime; + + if (!cd9660_tstamp_conv17(ap->ctime, &birthtime)) + memset(&birthtime, 0, sizeof(birthtime)); + if (!cd9660_tstamp_conv17(ap->mtime, + &inop->inode.iso_mtime)) + inop->inode.iso_mtime = birthtime; + inop->inode.iso_ctime = inop->inode.iso_mtime; + inop->inode.iso_atime = inop->inode.iso_mtime; } else ap = NULL; }