From nobody Thu Oct 08 20:43:42 2026 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 4j125W0nJHz6wCmZ for ; Thu, 08 Oct 2026 20:43:43 +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 4j125V3Z2Lz4bZj for ; Thu, 08 Oct 2026 20:43:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791492222; 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=M0W0mBKhvRYVhbh/nvlzz7G2UU2XmbO07guXmneJQxQ=; b=PmTMfdCvy7yGvdhz8iTJj18IYR0SnjeYWtljK1KqqEZui/5Hj4nlTFxVj6ilux9h7vXp9n o8w1S/c6k2jS5WLbKIYFg524X5n2xBdCLjjmKdxAV3jFTDiwCF9z0tEs1ndfJQBGY/ocmX 8myx440qkDw9A/nzOXt1pX7lGjh2tRPWRONHx0XYiid/3NBYVF0jZpLJKfTrcsm1zMOBoT WIVha7kiEgMaw0H+/y16TJFbh8UdV7YwzITH2y1TedLiUKinYVwJSb5CRGyhLw1DfM5Ff0 vAL7zPCT79Y6YqpJG9q9O9NOOuqbAcufZzPldJIGJIcfJS7wHiVOGiSemtGFZA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791492222; b=kJVUNg9oCWn8/cbpios9y0OTxAreL+8b2TDyEUgkquXIbo1cxVotdoT3g7XF3tpmJ81JRw MCPU/lgzb44fuCJxKqAMNnibyE6D63jN8wfczsGw/327o6MPgetMfcix4kmUYF3N+FjAfi 2Jtpr5UjCKvUQ6/e0SP4cdgkzlPVSqOyIkkvbhM4XEkQaAdxiktQyT2QxvT6yKTi+n/uEH rVggc8tCiuZ2LaDkHzTMZRj/cmpx5q5Hno2FreuRc+2dPEe31ovDeIrnF0HjcnsGmgQh4B 0uFnL0jMMlj8Y2QlQUsCTmJQ6532dvDQ+XWWnVtKjEaQzWk2XmLPxje6VmjFTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791492222; 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=M0W0mBKhvRYVhbh/nvlzz7G2UU2XmbO07guXmneJQxQ=; b=EVzfJOS2Pfdqg2Fnfdl5ov6PmsTEbQdpadvFkpxcYdAoBvWqhj5KGgoOG0k5UMymh+09RO SacrVXu9fCNFZciJl2SpQVEQyKN7lyUa1yRe/pWG3Y+q6IMX1VpMVvVnRFD47TTPkjvn1Z FdZqRkiwNVGLaK60M3aPxXWFEbKkunSozIKlPWoD8ve9DqhejnxpU/T3rvufyXydEVs3BI H8gcMNL5ITF1X5S144tdYuXCo1S28fGyuMEjTKsUiWNZmftlHyYJjEocrLJmq5UqPfKsC7 r4jbJzd57IYNYlQ5vRaa6Z534BXrSjECspRwEC2O8DbLxeXMNrH3a9U0uUqpKQ== 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 4j125V2M8vzwTp for ; Thu, 08 Oct 2026 20:43:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3226b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 08 Oct 2026 20:43:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 70d7b9fcd8a5 - stable/15 - cd9660: Adjust parsing of timestamps in the extended atttributes record 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/15 X-Git-Reftype: branch X-Git-Commit: 70d7b9fcd8a5d8666da6a23c3809c26e9aa501df Auto-Submitted: auto-generated Date: Thu, 08 Oct 2026 20:43:42 +0000 Message-Id: <6ac8007e.3226b.3634dac2@gitrepo.freebsd.org> The branch stable/15 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=70d7b9fcd8a5d8666da6a23c3809c26e9aa501df commit 70d7b9fcd8a5d8666da6a23c3809c26e9aa501df Author: John Baldwin AuthorDate: 2026-06-23 15:51:43 +0000 Commit: John Baldwin CommitDate: 2026-10-08 20:42:30 +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 ce6ec3aa7a1c..747536042ccc 100644 --- a/sys/fs/cd9660/cd9660_node.c +++ b/sys/fs/cd9660/cd9660_node.c @@ -177,12 +177,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; }