]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
cap: Actually apply the new capabilitys *sigh*
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 30 Sep 2020 18:30:19 +0000 (13:30 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 30 Sep 2020 18:30:19 +0000 (13:30 -0500)
src/lib/util/cap.c

index 7002d14712439dcce04946b8097a1614ff362ad1..08b778314f99f12ddd36fc8c80c385b30dbe3408 100644 (file)
@@ -73,7 +73,8 @@ int fr_cap_set(cap_value_t cap)
 
        if (cap_get_flag(caps, cap, CAP_EFFECTIVE, &state) < 0) {
                char *cap_name = cap_to_name(cap);
-               fr_strerror_printf("Failed getting %s effective state: %s", cap_name, fr_syserror(errno));
+               fr_strerror_printf("Failed getting %s effective state from working set: %s",
+                                  cap_name, fr_syserror(errno));
                cap_free(cap_name);
                goto done;
        }
@@ -89,11 +90,17 @@ int fr_cap_set(cap_value_t cap)
 
                if (cap_set_flag(caps, CAP_EFFECTIVE, NUM_ELEMENTS(to_set), to_set, CAP_SET) < 0) {
                        char *cap_name = cap_to_name(cap);
-                       fr_strerror_printf("Failed setting %s effective state: %s", cap_name, fr_syserror(errno));
+                       fr_strerror_printf("Failed setting %s effective state in worker set: %s",
+                                          cap_name, fr_syserror(errno));
                        cap_free(cap_name);
                        goto done;
                }
 
+               if (cap_set_proc(caps) < 0) {
+                       fr_strerror_printf("Failed setting %s effective state: %s", cap_name, fr_syserror(errno));
+                       goto done;
+               }
+
                rcode = 0;
        /*
         *      It's already in the effective set