From nobody Thu Jul 24 13:02:39 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 4bnrl34pqSz62TqW; Thu, 24 Jul 2025 13:02:39 +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 4bnrl337Slz3TCD; Thu, 24 Jul 2025 13:02:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753362159; 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=qQ1xiltlmdcR42GMc5Q+G6i5BIzvvjolI4yfFrCJHNo=; b=cTM26BBgoU372QqXDt67VeFFSXZne28yd5glP0d1eXndoAJURcOJYmhG4A0utuT9g8X/ym 1qXAC3zUr8mbiRyA/VRVOzDyZHFloSqh3QLPkMDBoMKQpwNzG8NMrACSnDWu2ZfhgZ3SHk NOEv0lqLMmFrb/fA/3V0aUWh7sS/n3DNfWzT1zJ5mkvi2hUGvrmRzqCPPZqeiG7lv7aTnU Dt8S/tdw4qVHjOm4gRZt1h/Gv5a66EdMbuEKodG8XsgcSOdL+mT9DKHl67dVoxnq20wK7z 1ylZLvarPCma4Wf7bxNreEfOQrFqPoQaYAawS5kED+1knN4iA0wxBIvwz8najw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1753362159; 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=qQ1xiltlmdcR42GMc5Q+G6i5BIzvvjolI4yfFrCJHNo=; b=XAf4FZXiZGkvTRNDCpf5N8hVDVvYh3XsQ9cq80wmxxuHa02iwH3RRaJUctnfkXLuwwzEx+ r4FgTKBoZdsijg5d97uIAkL7WK3udDBSrLkbRytsRPqJC8NvuJuCIcvX3shWIeG5NwpUeP NV3CqezDBvY0SKlyhs+IM3GP4rXRCLhLcxWVyh/vVHVvj0+cj5th75uBbURfhmiOOWSOrq Rl8VeZrGYm43a34UVdIAUZuyAuvuyCMZqUJ8TKnBZAWmu2yGhaPGr/LJNi5HNGaVk1uLGL CsbZpBEhO1owdzDVCOKwFRRZJbRLQ2MtxStDe+b3lwE+oAoO3NFDpj3L3eUJ4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1753362159; a=rsa-sha256; cv=none; b=S6vzWNYH3aWKqdVAOhmzTfnZ8PH4NFmR9Q/GslXImk2kmd9H4wA4UGnlVkg9sORD4yBtn3 3kVqZcKkJ70K9fmZG034lgOWavKPbqfaPpmMk+SQJuqoM7Lr9NgiFFJsflcWiziORMgOwT 7GHr8kN5kE+NaB3Il4n3pFYfDlXegB8ciPGXH0Juc54pm/+dvSNA2tY0chbGcbnK1B2lGt tABq/DnKK784NzUPYry/bPJ9mkvn3XjjZFOaKH70HmYUuTWRU8fXdDq6FNrucsWSa6tg0/ xAG5Hoc4nLkMonoVIqbqqPablqSM+kEhYBk+VEMV6Wy7h3rGibcR8m/WRwnvCw== 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 4bnrl32lVmz10my; Thu, 24 Jul 2025 13:02:39 +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 56OD2d6c001627; Thu, 24 Jul 2025 13:02:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56OD2dSf001624; Thu, 24 Jul 2025 13:02:39 GMT (envelope-from git) Date: Thu, 24 Jul 2025 13:02:39 GMT Message-Id: <202507241302.56OD2dSf001624@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: a7b4e2e9d0ca - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: a7b4e2e9d0caddf72c1cbe9e8e36b2edcbbbbff3 Auto-Submitted: auto-generated The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=a7b4e2e9d0caddf72c1cbe9e8e36b2edcbbbbff3 commit a7b4e2e9d0caddf72c1cbe9e8e36b2edcbbbbff3 Author: Dag-Erling Smørgrav AuthorDate: 2025-07-09 20:28:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-07-24 13:02:12 +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);