tar-util: fix error code on failure (#43688)
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "dlopen-note.h"
|
||||
#include "errno-util.h"
|
||||
#include "forward.h"
|
||||
|
||||
#if HAVE_ACL
|
||||
@@ -62,7 +63,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(uid_t*, sym_acl_free, acl_free_uid_tpp,
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(gid_t*, sym_acl_free, acl_free_gid_tpp, NULL);
|
||||
|
||||
static inline int acl_set_perm(acl_permset_t ps, acl_perm_t p, bool b) {
|
||||
return (b ? sym_acl_add_perm : sym_acl_delete_perm)(ps, p);
|
||||
return RET_NERRNO((b ? sym_acl_add_perm : sym_acl_delete_perm)(ps, p));
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
@@ -1366,17 +1366,17 @@ static int archive_write_acl(
|
||||
int permset = 0;
|
||||
r = sym_acl_get_perm(p, ACL_READ);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to get ACL entry read bit: %m");
|
||||
return log_error_errno(errno, "Failed to get ACL entry read bit: %m");
|
||||
SET_FLAG(permset, ARCHIVE_ENTRY_ACL_READ, r);
|
||||
|
||||
r = sym_acl_get_perm(p, ACL_WRITE);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to get ACL entry write bit: %m");
|
||||
return log_error_errno(errno, "Failed to get ACL entry write bit: %m");
|
||||
SET_FLAG(permset, ARCHIVE_ENTRY_ACL_WRITE, r);
|
||||
|
||||
r = sym_acl_get_perm(p, ACL_EXECUTE);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to get ACL entry execute bit: %m");
|
||||
return log_error_errno(errno, "Failed to get ACL entry execute bit: %m");
|
||||
SET_FLAG(permset, ARCHIVE_ENTRY_ACL_EXECUTE, r);
|
||||
|
||||
r = sym_archive_entry_acl_add_entry(entry, type, permset, tag, qualifier, /* name= */ NULL);
|
||||
|
||||
Reference in New Issue
Block a user