Hi Bowen, Thanks for reporting. I have installed the attached fix.
Regards, Sergey
>From 807e340ab239146f00f4f440c157b605fdaf1722 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff <g...@gnu.org> Date: Tue, 6 May 2025 22:25:38 +0300 Subject: [PATCH] Minor fix * src/extract.c (set_mode): Re-stat the file if current_mode_mask bits tell so. --- src/extract.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extract.c b/src/extract.c index a6bc9d30..d810f10a 100644 --- a/src/extract.c +++ b/src/extract.c @@ -341,7 +341,7 @@ set_mode (char const *file_name, { if (((current_mode ^ mode) | ~ current_mode_mask) & mode_mask) { - if (MODE_ALL & ~ mode_mask & ~ current_mode_mask) + if (MODE_ALL & ~ (mode_mask & current_mode_mask)) { struct stat st; if (fd_stat (fd, file_name, &st, atflag) < 0) -- 2.35.1