From fcd667f95110463d8e5e49ca81abfcdcd04ad511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Sat, 18 May 2024 17:44:22 -0700 Subject: [PATCH] acls: correct type/size for orig_umask Since 05278935 (- Call mkdir_defmode() instead of do_mkdir(). - Define orig_umask in this file, not options.c. - Made orig_umask a mode_t, not an int., 2006-02-24), the type for the global was changed, and therefore on systems where sizeof(mode_t) != sizeof(int), writes or reads to them will overflow to adjacent bytes. Change the type to the one used everywhere else and avoid this problem. While at it, silence again a warning that is being triggered by Apple's clang 15. --- acls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/acls.c b/acls.c index a2b0ff3ec..bd119e8ee 100644 --- a/acls.c +++ b/acls.c @@ -28,7 +28,7 @@ extern int dry_run; extern int am_root; extern int read_only; extern int list_only; -extern int orig_umask; +extern mode_t orig_umask; extern int numeric_ids; extern int inc_recurse; extern int preserve_devices; @@ -982,7 +982,7 @@ static int set_rsync_acl(const char *fname, acl_duo *duo_item, && !pack_smb_acl(&duo_item->sacl, &duo_item->racl)) return -1; #ifdef HAVE_OSX_ACLS - mode = 0; /* eliminate compiler warning */ + (void)mode; /* eliminate compiler warning */ #else if (type == SMB_ACL_TYPE_ACCESS) { cur_mode = change_sacl_perms(duo_item->sacl, &duo_item->racl, cur_mode, mode);