summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorshin <shin@FreeBSD.org>2000-03-09 14:51:05 +0000
committershin <shin@FreeBSD.org>2000-03-09 14:51:05 +0000
commit48f6832d33ea06fc0dace0e3707d8dc45125eeb9 (patch)
tree0e9656b9c4d33baa86e725426523434aabb06d88 /usr.sbin
parent88d80a54ba77dd6d68d777e737b95fc2aa4d78de (diff)
downloadFreeBSD-src-48f6832d33ea06fc0dace0e3707d8dc45125eeb9.zip
FreeBSD-src-48f6832d33ea06fc0dace0e3707d8dc45125eeb9.tar.gz
Added several socket close() which were mistakenly forgotten.
Reported by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/rtadvd/config.c1
-rw-r--r--usr.sbin/rtadvd/if.c1
-rw-r--r--usr.sbin/rtadvd/rrenum.c15
3 files changed, 10 insertions, 7 deletions
diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c
index 0e5f80d..964c79c 100644
--- a/usr.sbin/rtadvd/config.c
+++ b/usr.sbin/rtadvd/config.c
@@ -513,6 +513,7 @@ init_prefix(struct in6_prefixreq *ipr)
"This should not happen if I am router", __FUNCTION__,
inet_ntop(AF_INET6, &ipr->ipr_prefix.sin6_addr, ntopbuf,
sizeof(ntopbuf)), ipr->ipr_origin);
+ close(s);
return 1;
}
diff --git a/usr.sbin/rtadvd/if.c b/usr.sbin/rtadvd/if.c
index 98aefee..81aa47d 100644
--- a/usr.sbin/rtadvd/if.c
+++ b/usr.sbin/rtadvd/if.c
@@ -170,6 +170,7 @@ if_getflags(int ifindex, int oifflags)
close(s);
return (oifflags & ~IFF_UP);
}
+ close(s);
return (ifr.ifr_flags);
}
diff --git a/usr.sbin/rtadvd/rrenum.c b/usr.sbin/rtadvd/rrenum.c
index ec69ff2..f4c71f1 100644
--- a/usr.sbin/rtadvd/rrenum.c
+++ b/usr.sbin/rtadvd/rrenum.c
@@ -206,12 +206,6 @@ do_pco(struct icmp6_router_renum *rr, int len, struct rr_pco_match *rpm)
if ((rr_pco_check(len, rpm) != NULL))
return 1;
- if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
- syslog(LOG_ERR, "<%s> socket: %s", __FUNCTION__,
- strerror(errno));
- exit(1);
- }
-
memset(&irr, 0, sizeof(irr));
irr.irr_origin = PR_ORIG_RR;
irr.irr_m_len = rpm->rpm_matchlen;
@@ -260,6 +254,12 @@ do_rr(int len, struct icmp6_router_renum *rr)
/* get iflist block from kernel again, to get up-to-date information */
init_iflist();
+ if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
+ syslog(LOG_ERR, "<%s> socket: %s", __FUNCTION__,
+ strerror(errno));
+ exit(1);
+ }
+
while (cp < lim) {
int rpmlen;
@@ -268,6 +268,7 @@ do_rr(int len, struct icmp6_router_renum *rr)
tooshort:
syslog(LOG_ERR, "<%s> pkt too short. left len = %d. "
"gabage at end of pkt?", __FUNCTION__, len);
+ close(s);
return 1;
}
rpmlen = rpm->rpm_len << 3;
@@ -283,7 +284,7 @@ do_rr(int len, struct icmp6_router_renum *rr)
cp += rpmlen;
len -= rpmlen;
}
-
+ close(s);
return 0;
}
OpenPOWER on IntegriCloud