summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2004-02-02 23:17:34 +0000
committerhenning <henning@openbsd.org>2004-02-02 23:17:34 +0000
commitefc326516abec0286fc740fa82da0a9207d4294f (patch)
tree4d60ae7097ede10d299ddd613c77b96514e7c13c
parent2 missing returns in error pathes (diff)
downloadwireguard-openbsd-efc326516abec0286fc740fa82da0a9207d4294f.tar.xz
wireguard-openbsd-efc326516abec0286fc740fa82da0a9207d4294f.zip
close socket on error in control_init
From: Patrick Latifi <pat@eyeo.org>
-rw-r--r--usr.sbin/bgpd/control.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/control.c b/usr.sbin/bgpd/control.c
index e00289e959c..005d75c7138 100644
--- a/usr.sbin/bgpd/control.c
+++ b/usr.sbin/bgpd/control.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: control.c,v 1.20 2004/01/22 20:34:55 henning Exp $ */
+/* $OpenBSD: control.c,v 1.21 2004/02/02 23:17:34 henning Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -57,16 +57,19 @@ control_init(void)
if (unlink(SOCKET_NAME) == -1)
if (errno != ENOENT) {
log_warn("unlink %s", SOCKET_NAME);
+ close(fd);
return (-1);
}
if (bind(fd, (struct sockaddr *)&sun, sizeof(sun)) == -1) {
log_warn("control_init: bind: %s", SOCKET_NAME);
+ close(fd);
return (-1);
}
if (chmod(SOCKET_NAME, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP) == -1) {
log_warn("control_init chmod");
+ close(fd);
return (-1);
}