]> git.puffer.fish Git - matthieu/frr.git/commitdiff
libs: return from change_caps if no caps
authorMark Stapp <mjs@cisco.com>
Fri, 31 Jan 2025 18:13:48 +0000 (13:13 -0500)
committerMark Stapp <mjs@cisco.com>
Fri, 31 Jan 2025 18:13:48 +0000 (13:13 -0500)
When called without caps/privs, just return from "change_caps"
instead of exiting - it's possible that a process may not need
privs, but a lib (for example) may use the api.

Signed-off-by: Mark Stapp <mjs@cisco.com>
lib/privs.c

index b0809bf690a37186e8b51120e5e0ab05d7ef906f..e7df383e5d3df6073407b845cdb6c61a3abbfa32 100644 (file)
@@ -210,10 +210,11 @@ int zprivs_change_caps(zebra_privs_ops_t op)
 {
        cap_flag_value_t cflag;
 
-       /* should be no possibility of being called without valid caps */
-       assert(zprivs_state.syscaps_p && zprivs_state.caps);
-       if (!(zprivs_state.syscaps_p && zprivs_state.caps))
-               exit(1);
+       /* Called without valid caps - just return. Not every daemon needs
+        * privs.
+        */
+       if (zprivs_state.syscaps_p == NULL || zprivs_state.caps == NULL)
+               return 0;
 
        if (op == ZPRIVS_RAISE)
                cflag = CAP_SET;