diff options
| author | David Lamparter <equinox@diac24.net> | 2021-02-04 22:26:41 +0100 |
|---|---|---|
| committer | David Lamparter <equinox@diac24.net> | 2021-02-12 19:28:52 +0100 |
| commit | 877057b67adcd9ed15e34bc1cf39281dc08f64cc (patch) | |
| tree | 41a9c564dfed1e34d1dff7c97327f99982169bcb /lib/privs.c | |
| parent | 6e3253b9790bdb22eff3b74b940c8c20d8cbea2c (diff) | |
lib: have a lib_privs for ... lib privs
Logging code might want to raise privs for file operations.
Signed-off-by: David Lamparter <equinox@diac24.net>
Diffstat (limited to 'lib/privs.c')
| -rw-r--r-- | lib/privs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/privs.c b/lib/privs.c index 1bb5d059c8..5ca3c0d886 100644 --- a/lib/privs.c +++ b/lib/privs.c @@ -587,6 +587,8 @@ void zprivs_preinit(struct zebra_privs_t *zprivs) } } +struct zebra_privs_t *lib_privs; + void zprivs_init(struct zebra_privs_t *zprivs) { gid_t groups[NGROUPS_MAX] = {}; @@ -598,6 +600,8 @@ void zprivs_init(struct zebra_privs_t *zprivs) || zprivs->cap_num_i)) return; + lib_privs = zprivs; + if (zprivs->user) { ngroups = array_size(groups); if (getgrouplist(zprivs->user, zprivs_state.zgid, groups, @@ -701,6 +705,8 @@ void zprivs_terminate(struct zebra_privs_t *zprivs) { struct zebra_privs_refs_t *refs; + lib_privs = NULL; + if (!zprivs) { fprintf(stderr, "%s: no privs struct given, terminating", __func__); |
