From nobody Sat Sep 17 12:26:36 2022 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 4MV9Cw3zZgz4cfRF; Sat, 17 Sep 2022 12:26:36 +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 4MV9Cw3Hlcz44TW; Sat, 17 Sep 2022 12:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1663417596; 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=2yUpRmP6jp2iTlw2YGfpn2AiVsc1AUbjLnJDY8wiyzI=; b=V5s+IB0iBZmkdRscJgV85egaw+OeXavSg8UoUNnE09tkaoHezTClcGuvke5/xireeyt/1d LIPuKPQYDNd5LqgPZ9NNZFgJoxb6oVtxRT072Pl8DCY9ooM27oCSZp7y4/oQstpZNT9jnE VBbvparjqA2GH4suKia1qF/uLpt0fesekQPWU3pMDh4SVTi4wxmEqPVKK1Ts+iUmKgbWFt rZ257dMqwOMnPBRbIL8cuCplCM7dHmX4qAJ78uj7lXDEK9euKQXx5Zegi5+Ue16xH8F/uP 0YBsZqIhApo5hDUcyt4npWRC4Ya4AVtGJxNFeWqY52EeuwhYBOpWuFfskTYf+A== 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 4MV9Cw2KNtzj05; Sat, 17 Sep 2022 12:26:36 +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 28HCQaEY028131; Sat, 17 Sep 2022 12:26:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 28HCQaGv028130; Sat, 17 Sep 2022 12:26:36 GMT (envelope-from git) Date: Sat, 17 Sep 2022 12:26:36 GMT Message-Id: <202209171226.28HCQaGv028130@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mateusz Guzik Subject: git: 298c7c516521 - main - zfs: don't access nameidata unless namei succeeded 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 298c7c5165217e4ecfc1b49785465918ad0865c2 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1663417596; 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=2yUpRmP6jp2iTlw2YGfpn2AiVsc1AUbjLnJDY8wiyzI=; b=BTsoniObr55xrRXHlHTPO1tmi63HG/UGowdm2hhKXbYiBMtTkBpj3Gs+PrOnEva50we+Zi KC2tjWvIFaWTS9jYn43lV0OjHWr90parnmjSFVuZx7scu6CRayJCu9MBOPgPdilaqrCfLP dJSkeU6RPBz7Ck21dSaJz5bEq8Y3OWkeO6F5PMFviZEMXwKQD/TE3E1Dz59qDq3SJ0HjIH BThlYzEHdon/8P/CBUUrj6+eLVauZvQ2YxxPvQant5Y2yeyZVG2pnl/o4M2e7p2NONXV0r pmDCxe+d+4aQnx1Z4ZvWZ8qUGTx63H3yj78zFlc2l1/zLz2XvcCc2Zf7TmFOqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1663417596; a=rsa-sha256; cv=none; b=whzEapYh8XvReOs9FwAhaFaBpDgaDsD1327Tx4ORVpokk1lHG1++47t2DBgfgS+yE/GmRd 5mnlkVO6Xeknk8idaabWTIeWL9jxfnGjP9zeTG30olBZQ3mjnsDZ+j92qsgVUjKKZVYJrA j4Aha/sxaJ9iOecYd35IRT14Jv0QYSFm68MT6IETq+Ewcveswo7zFFX+0MqqMN2rV7FrU4 WH7MchVjXK9rOLJsFal+2l0Ppn+c6xabPYvYoOqIVnico7R0zA2N4vYNcqEO66eyQ/OpVG fXJGbbPehZ/sSxAnFPaZDNA5//tvmlL/htQQqdZEwaoKrYujxUdb8Wub+rfw5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=298c7c5165217e4ecfc1b49785465918ad0865c2 commit 298c7c5165217e4ecfc1b49785465918ad0865c2 Author: Mateusz Guzik AuthorDate: 2022-09-17 12:25:59 +0000 Commit: Mateusz Guzik CommitDate: 2022-09-17 12:25:59 +0000 zfs: don't access nameidata unless namei succeeded --- .../openzfs/module/os/freebsd/zfs/zfs_vnops_os.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c index a102ce2e99a9..bb61b0162985 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c @@ -5376,10 +5376,10 @@ zfs_getextattr_dir(struct vop_getextattr_args *ap, const char *attrname) NDINIT_ATVP(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, attrname, xvp); #endif error = vn_open_cred(&nd, &flags, 0, VN_OPEN_INVFS, ap->a_cred, NULL); - vp = nd.ni_vp; - NDFREE_PNBUF(&nd); if (error != 0) return (SET_ERROR(error)); + vp = nd.ni_vp; + NDFREE_PNBUF(&nd); if (ap->a_size != NULL) { error = VOP_GETATTR(vp, &va, ap->a_cred); @@ -5521,12 +5521,10 @@ zfs_deleteextattr_dir(struct vop_deleteextattr_args *ap, const char *attrname) UIO_SYSSPACE, attrname, xvp); #endif error = namei(&nd); - vp = nd.ni_vp; - if (error != 0) { - NDFREE_PNBUF(&nd); + if (error != 0) return (SET_ERROR(error)); - } + vp = nd.ni_vp; error = VOP_REMOVE(nd.ni_dvp, vp, &nd.ni_cnd); NDFREE_PNBUF(&nd); @@ -5666,10 +5664,10 @@ zfs_setextattr_dir(struct vop_setextattr_args *ap, const char *attrname) #endif error = vn_open_cred(&nd, &flags, 0600, VN_OPEN_INVFS, ap->a_cred, NULL); - vp = nd.ni_vp; - NDFREE_PNBUF(&nd); if (error != 0) return (SET_ERROR(error)); + vp = nd.ni_vp; + NDFREE_PNBUF(&nd); VATTR_NULL(&va); va.va_size = 0; @@ -5853,10 +5851,10 @@ zfs_listextattr_dir(struct vop_listextattr_args *ap, const char *attrprefix) UIO_SYSSPACE, ".", xvp); #endif error = namei(&nd); - vp = nd.ni_vp; - NDFREE_PNBUF(&nd); if (error != 0) return (SET_ERROR(error)); + vp = nd.ni_vp; + NDFREE_PNBUF(&nd); auio.uio_iov = &aiov; auio.uio_iovcnt = 1;