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

Reply via email to