projects
/
musl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ca9aff6
)
fix missing SOCK_CLOEXEC in various functions that use sockets internally
author
Rich Felker
<dalias@aerifal.cx>
Tue, 9 Jul 2013 04:40:17 +0000
(
00:40
-0400)
committer
Rich Felker
<dalias@aerifal.cx>
Tue, 9 Jul 2013 04:40:17 +0000
(
00:40
-0400)
src/network/getifaddrs.c
patch
|
blob
|
history
src/network/if_indextoname.c
patch
|
blob
|
history
src/network/if_nameindex.c
patch
|
blob
|
history
src/network/if_nametoindex.c
patch
|
blob
|
history
diff --git
a/src/network/getifaddrs.c
b/src/network/getifaddrs.c
index
a4c3178
..
a14ac1b
100644
(file)
--- a/
src/network/getifaddrs.c
+++ b/
src/network/getifaddrs.c
@@
-127,7
+127,7
@@
int getifaddrs(struct ifaddrs **ifap)
}
if_freenameindex(ii);
}
if_freenameindex(ii);
- int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
+ int sock = socket(PF_INET, SOCK_DGRAM
|SOCK_CLOEXEC
, IPPROTO_IP);
if(sock == -1) goto err2;
struct ifreq reqs[32]; /* arbitrary chosen boundary */
struct ifconf conf = {.ifc_len = sizeof reqs, .ifc_req = reqs};
if(sock == -1) goto err2;
struct ifreq reqs[32]; /* arbitrary chosen boundary */
struct ifconf conf = {.ifc_len = sizeof reqs, .ifc_req = reqs};
diff --git
a/src/network/if_indextoname.c
b/src/network/if_indextoname.c
index
f18f17a
..
6ee7f13
100644
(file)
--- a/
src/network/if_indextoname.c
+++ b/
src/network/if_indextoname.c
@@
-10,7
+10,7
@@
char *if_indextoname(unsigned index, char *name)
struct ifreq ifr;
int fd, r;
struct ifreq ifr;
int fd, r;
- if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) return 0;
+ if ((fd = socket(AF_UNIX, SOCK_DGRAM
|SOCK_CLOEXEC
, 0)) < 0) return 0;
ifr.ifr_ifindex = index;
r = ioctl(fd, SIOCGIFNAME, &ifr);
__syscall(SYS_close, fd);
ifr.ifr_ifindex = index;
r = ioctl(fd, SIOCGIFNAME, &ifr);
__syscall(SYS_close, fd);
diff --git
a/src/network/if_nameindex.c
b/src/network/if_nameindex.c
index
cdb956c
..
ad0a766
100644
(file)
--- a/
src/network/if_nameindex.c
+++ b/
src/network/if_nameindex.c
@@
-47,7
+47,7
@@
struct if_nameindex *if_nameindex()
{
size_t n;
void *p = 0;
{
size_t n;
void *p = 0;
- int s = socket(AF_UNIX, SOCK_DGRAM, 0);
+ int s = socket(AF_UNIX, SOCK_DGRAM
|SOCK_CLOEXEC
, 0);
if (s>=0) {
for (n=0; (p=do_nameindex(s, n)) == (void *)-1; n++);
__syscall(SYS_close, s);
if (s>=0) {
for (n=0; (p=do_nameindex(s, n)) == (void *)-1; n++);
__syscall(SYS_close, s);
diff --git
a/src/network/if_nametoindex.c
b/src/network/if_nametoindex.c
index
419931f
..
fb4a147
100644
(file)
--- a/
src/network/if_nametoindex.c
+++ b/
src/network/if_nametoindex.c
@@
-10,7
+10,7
@@
unsigned if_nametoindex(const char *name)
struct ifreq ifr;
int fd, r;
struct ifreq ifr;
int fd, r;
- if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) return -1;
+ if ((fd = socket(AF_UNIX, SOCK_DGRAM
|SOCK_CLOEXEC
, 0)) < 0) return -1;
strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name);
r = ioctl(fd, SIOCGIFINDEX, &ifr);
__syscall(SYS_close, fd);
strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name);
r = ioctl(fd, SIOCGIFINDEX, &ifr);
__syscall(SYS_close, fd);