Upstream fix for build with libacl 2.4
Related: RHEL-218040
This commit is contained in:
parent
9011a59186
commit
67cc0b69fd
99
tar-1.35-Avoid-acl_-prefix-for-functions.patch
Normal file
99
tar-1.35-Avoid-acl_-prefix-for-functions.patch
Normal file
@ -0,0 +1,99 @@
|
||||
From f1ecf60ea59c1503e63e887e455756b68db04806 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Cahyna <pcahyna@redhat.com>
|
||||
Date: Wed, 24 Jun 2026 18:45:30 +0200
|
||||
Subject: [PATCH] Avoid acl_ prefix for functions
|
||||
|
||||
The acl.h header from libacl uses acl_ prefix for its functions. Avoid
|
||||
defining functions with the same name in order to protect its namespace.
|
||||
---
|
||||
src/xattrs.c | 30 +++++++++++++++---------------
|
||||
1 file changed, 15 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/xattrs.c b/src/xattrs.c
|
||||
index 4f5872c1..f98e8e0f 100644
|
||||
--- a/src/xattrs.c
|
||||
+++ b/src/xattrs.c
|
||||
@@ -133,13 +133,13 @@ static struct
|
||||
#ifdef HAVE_POSIX_ACLS
|
||||
|
||||
/* acl-at wrappers, TODO: move to gnulib in future? */
|
||||
-static acl_t acl_get_file_at (int, const char *, acl_type_t);
|
||||
-static int acl_set_file_at (int, const char *, acl_type_t, acl_t);
|
||||
+static acl_t tar_acl_get_file_at (int, const char *, acl_type_t);
|
||||
+static int tar_acl_set_file_at (int, const char *, acl_type_t, acl_t);
|
||||
static int file_has_acl_at (int, char const *, struct stat const *);
|
||||
-static int acl_delete_def_file_at (int, char const *);
|
||||
+static int tar_acl_delete_def_file_at (int, char const *);
|
||||
|
||||
-/* acl_get_file_at */
|
||||
-#define AT_FUNC_NAME acl_get_file_at
|
||||
+/* tar_acl_get_file_at */
|
||||
+#define AT_FUNC_NAME tar_acl_get_file_at
|
||||
#define AT_FUNC_RESULT acl_t
|
||||
#define AT_FUNC_FAIL (acl_t)NULL
|
||||
#define AT_FUNC_F1 acl_get_file
|
||||
@@ -153,8 +153,8 @@ static int acl_delete_def_file_at (int, char const *);
|
||||
#undef AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
#undef AT_FUNC_POST_FILE_ARGS
|
||||
|
||||
-/* acl_set_file_at */
|
||||
-#define AT_FUNC_NAME acl_set_file_at
|
||||
+/* tar_acl_set_file_at */
|
||||
+#define AT_FUNC_NAME tar_acl_set_file_at
|
||||
#define AT_FUNC_F1 acl_set_file
|
||||
#define AT_FUNC_POST_FILE_PARAM_DECLS , acl_type_t type, acl_t acl
|
||||
#define AT_FUNC_POST_FILE_ARGS , type, acl
|
||||
@@ -164,8 +164,8 @@ static int acl_delete_def_file_at (int, char const *);
|
||||
#undef AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
#undef AT_FUNC_POST_FILE_ARGS
|
||||
|
||||
-/* acl_delete_def_file_at */
|
||||
-#define AT_FUNC_NAME acl_delete_def_file_at
|
||||
+/* tar_acl_delete_def_file_at */
|
||||
+#define AT_FUNC_NAME tar_acl_delete_def_file_at
|
||||
#define AT_FUNC_F1 acl_delete_def_file
|
||||
#define AT_FUNC_POST_FILE_PARAM_DECLS
|
||||
#define AT_FUNC_POST_FILE_ARGS
|
||||
@@ -294,10 +294,10 @@ xattrs__acls_set (struct tar_stat_info const *st,
|
||||
FILE_NAME may already have inherited default acls from parent
|
||||
directory; clean them up. */
|
||||
struct fdbase f1 = fdbase (file_name);
|
||||
- if (f1.fd == BADFD || acl_delete_def_file_at (f1.fd, f1.base))
|
||||
+ if (f1.fd == BADFD || tar_acl_delete_def_file_at (f1.fd, f1.base))
|
||||
WARNOPT (WARN_XATTR_WRITE,
|
||||
(0, errno,
|
||||
- _("acl_delete_def_file_at: Cannot drop default POSIX ACLs "
|
||||
+ _("tar_acl_delete_def_file_at: Cannot drop default POSIX ACLs "
|
||||
"for file '%s'"),
|
||||
file_name));
|
||||
return;
|
||||
@@ -311,11 +311,11 @@ xattrs__acls_set (struct tar_stat_info const *st,
|
||||
}
|
||||
|
||||
struct fdbase f = fdbase (file_name);
|
||||
- if (f.fd == BADFD || acl_set_file_at (f.fd, f.base, type, acl) == -1)
|
||||
+ if (f.fd == BADFD || tar_acl_set_file_at (f.fd, f.base, type, acl) == -1)
|
||||
/* warn even if filesystem does not support acls */
|
||||
WARNOPT (WARN_XATTR_WRITE,
|
||||
(0, errno,
|
||||
- _ ("acl_set_file_at: Cannot set POSIX ACLs for file '%s'"),
|
||||
+ _ ("tar_acl_set_file_at: Cannot set POSIX ACLs for file '%s'"),
|
||||
file_name));
|
||||
|
||||
acl_free (acl);
|
||||
@@ -351,10 +351,10 @@ acls_get_text (int parentfd, const char *file_name, acl_type_t type,
|
||||
char *val = NULL;
|
||||
acl_t acl;
|
||||
|
||||
- if (!(acl = acl_get_file_at (parentfd, file_name, type)))
|
||||
+ if (!(acl = tar_acl_get_file_at (parentfd, file_name, type)))
|
||||
{
|
||||
if (errno != ENOTSUP)
|
||||
- call_arg_warn ("acl_get_file_at", file_name);
|
||||
+ call_arg_warn ("tar_acl_get_file_at", file_name);
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
2.47.3
|
||||
|
||||
2
tar.spec
2
tar.spec
@ -59,6 +59,8 @@ Patch22: tar-1.35-no-overwrite-dir-no-overwrite-even-temporarily.patch
|
||||
# 45b6e6898d1f931bfca41d961289bd6ac33238e5
|
||||
Patch23: tar-1.35-CVE-2025-45582.patch
|
||||
Patch24: tar-1.35-tar-one-top-level-DIR-must-be-relative.patch
|
||||
# Source: https://cgit.git.savannah.gnu.org/cgit/tar.git/diff/?id=08c3fc2e9337094aff01a511170fd35fdb8f1ee3
|
||||
Patch25: tar-1.35-Avoid-acl_-prefix-for-functions.patch
|
||||
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
|
||||
Loading…
Reference in New Issue
Block a user