summaryrefslogtreecommitdiff
path: root/lib/libfrr.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2017-10-05 21:47:11 -0300
committerRenato Westphal <renato@opensourcerouting.org>2017-10-05 22:51:23 -0300
commit993bab898d4aff3a29bc041e6b45488b5a9cfa12 (patch)
tree9efd898883019def6ffdaf51070e66607785a3a2 /lib/libfrr.c
parent76ae8092db11aa40198f71424103b484675d4d62 (diff)
lib, ldpd: fix "argument cannot be negative" coverity warnings
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'lib/libfrr.c')
-rw-r--r--lib/libfrr.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/lib/libfrr.c b/lib/libfrr.c
index 2859f062c1..6cb8711edf 100644
--- a/lib/libfrr.c
+++ b/lib/libfrr.c
@@ -768,6 +768,8 @@ void frr_vty_serv(void)
static void frr_terminal_close(int isexit)
{
+ int nullfd;
+
if (daemon_ctl_sock != -1) {
close(daemon_ctl_sock);
daemon_ctl_sock = -1;
@@ -783,11 +785,16 @@ static void frr_terminal_close(int isexit)
fflush(stdout);
}
- int nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
- dup2(nullfd, 0);
- dup2(nullfd, 1);
- dup2(nullfd, 2);
- close(nullfd);
+ nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
+ if (nullfd == -1) {
+ zlog_err("%s: failed to open /dev/null: %s", __func__,
+ safe_strerror(errno));
+ } else {
+ dup2(nullfd, 0);
+ dup2(nullfd, 1);
+ dup2(nullfd, 2);
+ close(nullfd);
+ }
}
static struct thread *daemon_ctl_thread = NULL;
@@ -849,10 +856,15 @@ void frr_run(struct thread_master *master)
}
} else if (di->daemon_mode) {
int nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
- dup2(nullfd, 0);
- dup2(nullfd, 1);
- dup2(nullfd, 2);
- close(nullfd);
+ if (nullfd == -1) {
+ zlog_err("%s: failed to open /dev/null: %s", __func__,
+ safe_strerror(errno));
+ } else {
+ dup2(nullfd, 0);
+ dup2(nullfd, 1);
+ dup2(nullfd, 2);
+ close(nullfd);
+ }
if (daemon_ctl_sock != -1)
close(daemon_ctl_sock);