Skip to content

Commit

Permalink
Merge pull request #11512 from FRRouting/mergify/bp/stable/8.1/pr-11488
Browse files Browse the repository at this point in the history
lib: Allow downgrade of all caps when none are specified (backport #11488)
  • Loading branch information
donaldsharp committed Jul 1, 2022
2 parents 1cd828e + 1b033cb commit 0810529
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions lib/privs.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,9 +282,6 @@ static void zprivs_caps_init(struct zebra_privs_t *zprivs)
}
}

if (!zprivs_state.syscaps_p)
return;

if (!(zprivs_state.caps = cap_init())) {
fprintf(stderr, "privs_init: failed to cap_init, %s\n",
safe_strerror(errno));
Expand All @@ -297,10 +294,12 @@ static void zprivs_caps_init(struct zebra_privs_t *zprivs)
exit(1);
}

/* set permitted caps */
cap_set_flag(zprivs_state.caps, CAP_PERMITTED,
zprivs_state.syscaps_p->num, zprivs_state.syscaps_p->caps,
CAP_SET);
/* set permitted caps, if any */
if (zprivs_state.syscaps_p && zprivs_state.syscaps_p->num) {
cap_set_flag(zprivs_state.caps, CAP_PERMITTED,
zprivs_state.syscaps_p->num,
zprivs_state.syscaps_p->caps, CAP_SET);
}

/* set inheritable caps, if any */
if (zprivs_state.syscaps_i && zprivs_state.syscaps_i->num) {
Expand Down Expand Up @@ -360,7 +359,7 @@ static void zprivs_caps_terminate(void)
}

/* free up private state */
if (zprivs_state.syscaps_p->num) {
if (zprivs_state.syscaps_p && zprivs_state.syscaps_p->num) {
XFREE(MTYPE_PRIVS, zprivs_state.syscaps_p->caps);
XFREE(MTYPE_PRIVS, zprivs_state.syscaps_p);
}
Expand Down

0 comments on commit 0810529

Please sign in to comment.