blob: 6fc849337cc0eea0774f056e8c80e3b62f648ed9 [file] [log] [blame]
From c62a6f32ab965de2ec77a614f20f04568116835b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 5 Sep 2019 21:39:05 -0700
Subject: [PATCH 2/2] util_sec.c: Move __thread variable to global scope
Make clang happy otherwise it complains about variable scope
fixes
source3/./lib/util_sec.c:470:4: error: '__thread' variables must have global storage
} __thread cache;
^
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
source3/lib/util_sec.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/source3/lib/util_sec.c b/source3/lib/util_sec.c
index 9408269..7390318 100644
--- a/source3/lib/util_sec.c
+++ b/source3/lib/util_sec.c
@@ -444,6 +444,17 @@ void become_user_permanently(uid_t uid, gid_t gid)
assert_gid(gid, gid);
}
+#ifdef HAVE___THREAD
+ struct cache_t {
+ bool active;
+ uid_t uid;
+ gid_t gid;
+ size_t setlen;
+ uintptr_t gidset;
+ };
+
+static __thread struct cache_t cache;
+#endif
/**********************************************************
Function to set thread specific credentials. Leave
saved-set uid/gid alone.Must be thread-safe code.
@@ -461,14 +472,6 @@ int set_thread_credentials(uid_t uid,
* available.
*/
#ifdef HAVE___THREAD
- static struct {
- bool active;
- uid_t uid;
- gid_t gid;
- size_t setlen;
- uintptr_t gidset;
- } __thread cache;
-
if (cache.active &&
cache.uid == uid &&
cache.gid == gid &&
--
2.23.0