diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/privs.c | 4 | ||||
| -rw-r--r-- | lib/thread.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/privs.c b/lib/privs.c index 09efedf684..eb0dbe0783 100644 --- a/lib/privs.c +++ b/lib/privs.c @@ -406,9 +406,11 @@ static void zprivs_caps_init(struct zebra_privs_t *zprivs) static void zprivs_caps_terminate(void) { - /* clear all capabilities */ + /* Clear all capabilities, if we have any. */ if (zprivs_state.caps) cap_clear(zprivs_state.caps); + else + return; /* and boom, capabilities are gone forever */ if (cap_set_proc(zprivs_state.caps)) { diff --git a/lib/thread.c b/lib/thread.c index 4d689a9f88..9b2f5661ac 100644 --- a/lib/thread.c +++ b/lib/thread.c @@ -1094,7 +1094,8 @@ static void do_thread_cancel(struct thread_master *master) } /* Delete and free all cancellation requests */ - list_delete_all_node(master->cancel_req); + if (master->cancel_req) + list_delete_all_node(master->cancel_req); /* Wake up any threads which may be blocked in thread_cancel_async() */ master->canceled = true; |
