| 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 |
| |