diff options
Diffstat (limited to 'zebra/kernel_socket.c')
| -rw-r--r-- | zebra/kernel_socket.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c index 79721cf87a..78e25e7626 100644 --- a/zebra/kernel_socket.c +++ b/zebra/kernel_socket.c @@ -1385,17 +1385,11 @@ static int kernel_read(struct thread *thread) /* Make routing socket. */ static void routing_socket(struct zebra_ns *zns) { - if (zserv_privs.change(ZPRIVS_RAISE)) - flog_err(LIB_ERR_PRIVILEGES, - "routing_socket: Can't raise privileges"); - - routing_sock = - ns_socket(AF_ROUTE, SOCK_RAW, 0, zns->ns_id); + frr_elevate_privs(&zserv_privs) { + routing_sock = ns_socket(AF_ROUTE, SOCK_RAW, 0, zns->ns_id); + } if (routing_sock < 0) { - if (zserv_privs.change(ZPRIVS_LOWER)) - flog_err(LIB_ERR_PRIVILEGES, - "routing_socket: Can't lower privileges"); zlog_warn("Can't init kernel routing socket"); return; } @@ -1407,10 +1401,6 @@ static void routing_socket(struct zebra_ns *zns) /*if (fcntl (routing_sock, F_SETFL, O_NONBLOCK) < 0) zlog_warn ("Can't set O_NONBLOCK to routing socket");*/ - if (zserv_privs.change(ZPRIVS_LOWER)) - flog_err(LIB_ERR_PRIVILEGES, - "routing_socket: Can't lower privileges"); - /* kernel_read needs rewrite. */ thread_add_read(zebrad.master, kernel_read, NULL, routing_sock, NULL); } |
