]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/privs.c
lib: have a lib_privs for ... lib privs
[mirror_frr.git] / lib / privs.c
index 1bb5d059c87b759da80ee9f75a1816d69597cd28..5ca3c0d886efbaf9c5f6deb92e7ddcd558b1128f 100644 (file)
@@ -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__);