From nobody Thu Jul 24 13:02:58 2025 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 4bnrlQ3tbRz62VNh; Thu, 24 Jul 2025 13:02:58 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bnrlQ1Gc7z3Tbq; Thu, 24 Jul 2025 13:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753362178; 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=zWyT+A01SubbrhqQnlNb4v6kJGcLpQO/cTcLj2cGdt8=; b=LZpDreaBlsnVh2S7kOTkVXlsUWr+KwpE4z9AKQIWd2nFq4L/NVCttaJ6HdUUT3SvxthuG4 3r4HOBSN6jbSdeEICxlPOB4PbTLunaiNsWkNhchz9XymvWwq4m4KUiP2oQu4IbPlrAlyAU 8eMTLZVkJVUR8RbelF48dTGcj+HbfvjDRRk4+hmmSe3zG0bS00hnf/KOGsDcK1PoL3kSB4 dQkfklfQn4DgRE1wfZNrp4TWGPa9S3Ciwkiwt4TpRcbV5pXgVC7HJpp5KKAitHiutrm0DN FHkNUZHIL+2hYsRQrO/x7F440BarOD+eJSLuYGJavcpHQHCnGTwhQLrWG6d+Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753362178; 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=zWyT+A01SubbrhqQnlNb4v6kJGcLpQO/cTcLj2cGdt8=; b=P8fI19sjxpGHx7ssQrRFukB/o1/ULmaydY6vnZUVBb6ALwYJxFBJbMky4lmFznDV66Ew4G YHC+nKt8cygUkAtd3vQZAwO5Dg9EXHbLLolRWlLtGC22soxz0snvk8Y7g/PAaP6ylphJ9q eBbfseXCMwxtiHSvv4ceelu1z+UKqwxJnk2MoQmJLhxiw+PW5yXDCZdeDH6dvLUzkLER7p Wm3PW884M62HKUIjDGHHP2H/6MT51GY7UxrQ8ovqvK5TxJfEzcpImU92xIUEtrvb86hffb FdRLb/C6WZ/bs/QmGHcZEnACH3qHii71lnEjsGbdYf7YGfMo1PsDjrDjzcw+mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1753362178; a=rsa-sha256; cv=none; b=D4sNWEtNCuCn4bGytFmMSdYmG+lNxJgE620PSF0tR+e6EvJtJCp72VGBVhlK1swY40qrEm eIeNV+Vse3J9GkIBuhlKoEpcjr6J/yqsiYLMWE6hLFjdI+G65+PiRWkfEwNPdKnd73vSYA iFweoh7Z5UYbsM3AVsb/wjX/0KXsbgSk3/buzK+XvSrLlZWzJNHY7zrARnPnsT+7KpIAlF GX8mV8C2MUSwKTSSx8bnnZVyEVTRDosbPvvsMP1QHEgWqCB/qfA5xFHi21Dl77msaWaLiJ aJn0svZL3CWAU+0GbNsq7FfoFa8n+m/0Q9f5YS6M+fSUd8/cj3Ey0reCH4/EAA== 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 4bnrlQ0WTjz10Ns; Thu, 24 Jul 2025 13:02:58 +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 56OD2wiI001969; Thu, 24 Jul 2025 13:02:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56OD2wMA001966; Thu, 24 Jul 2025 13:02:58 GMT (envelope-from git) Date: Thu, 24 Jul 2025 13:02:58 GMT Message-Id: <202507241302.56OD2wMA001966@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 91a6bf215cb1 - stable/14 - kyua: Try harder to delete directories. 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 91a6bf215cb13e40b80e54ad5194c9aaf777cc3c Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=91a6bf215cb13e40b80e54ad5194c9aaf777cc3c commit 91a6bf215cb13e40b80e54ad5194c9aaf777cc3c Author: Dag-Erling Smørgrav AuthorDate: 2025-07-09 20:28:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-07-24 13:02:45 +0000 kyua: Try harder to delete directories. When recursing into a directory to delete it, start by chmod'ing it to 0700. This fixes an issue where kyua is able to run, but not debug, a test case that creates unwriteable directories, because when debugging it tries (and fails) to delete the directory after the test completes. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: igoro Differential Revision: https://reviews.freebsd.org/D51229 (cherry picked from commit 9bf14f2a475e221c48488984dc5a02a4608bb877) --- contrib/kyua/utils/fs/operations.cpp | 2 ++ contrib/kyua/utils/fs/operations_test.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/contrib/kyua/utils/fs/operations.cpp b/contrib/kyua/utils/fs/operations.cpp index 7a96d0b2058a..185d164b88d7 100644 --- a/contrib/kyua/utils/fs/operations.cpp +++ b/contrib/kyua/utils/fs/operations.cpp @@ -692,6 +692,7 @@ fs::rm_r(const fs::path& directory) { const fs::directory dir(directory); + ::chmod(directory.c_str(), 0700); for (fs::directory::const_iterator iter = dir.begin(); iter != dir.end(); ++iter) { if (iter->name == "." || iter->name == "..") @@ -701,6 +702,7 @@ fs::rm_r(const fs::path& directory) if (fs::is_directory(entry)) { LD(F("Descending into %s") % entry); + ::chmod(entry.c_str(), 0700); fs::rm_r(entry); } else { LD(F("Removing file %s") % entry); diff --git a/contrib/kyua/utils/fs/operations_test.cpp b/contrib/kyua/utils/fs/operations_test.cpp index f1349351166e..6f0fa52811c9 100644 --- a/contrib/kyua/utils/fs/operations_test.cpp +++ b/contrib/kyua/utils/fs/operations_test.cpp @@ -664,6 +664,19 @@ ATF_TEST_CASE_BODY(rm_r__files_and_directories) } +ATF_TEST_CASE_WITHOUT_HEAD(rm_r__bad_perms); +ATF_TEST_CASE_BODY(rm_r__bad_perms) +{ + fs::mkdir(fs::path("root"), 0755); + fs::mkdir(fs::path("root/dir"), 0755); + atf::utils::create_file("root/dir/file", ""); + ::chmod(fs::path("root/dir").c_str(), 0000); + ATF_REQUIRE(lookup(".", "root", S_IFDIR)); + fs::rm_r(fs::path("root")); + ATF_REQUIRE(!lookup(".", "root", S_IFDIR)); +} + + ATF_TEST_CASE_WITHOUT_HEAD(rmdir__ok) ATF_TEST_CASE_BODY(rmdir__ok) { @@ -811,6 +824,7 @@ ATF_INIT_TEST_CASES(tcs) ATF_ADD_TEST_CASE(tcs, rm_r__empty); ATF_ADD_TEST_CASE(tcs, rm_r__files_and_directories); + ATF_ADD_TEST_CASE(tcs, rm_r__bad_perms); ATF_ADD_TEST_CASE(tcs, rmdir__ok); ATF_ADD_TEST_CASE(tcs, rmdir__fail);