projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move the dynamic linker's jmp_buf from static to automatic storage
[musl]
/
src
/
network
/
if_nameindex.c
diff --git
a/src/network/if_nameindex.c
b/src/network/if_nameindex.c
index
580acce
..
ad0a766
100644
(file)
--- a/
src/network/if_nameindex.c
+++ b/
src/network/if_nameindex.c
@@
-10,7
+10,7
@@
static void *do_nameindex(int s, size_t n)
{
static void *do_nameindex(int s, size_t n)
{
- size_t i, len;
+ size_t i, len
, k
;
struct ifconf conf;
struct if_nameindex *idx;
struct ifconf conf;
struct if_nameindex *idx;
@@
-29,17
+29,16
@@
static void *do_nameindex(int s, size_t n)
}
n = conf.ifc_len / sizeof(struct ifreq);
}
n = conf.ifc_len / sizeof(struct ifreq);
- for (i=0; i<n; i++) {
+ for (i=
k=
0; i<n; i++) {
if (ioctl(s, SIOCGIFINDEX, &conf.ifc_req[i]) < 0) {
if (ioctl(s, SIOCGIFINDEX, &conf.ifc_req[i]) < 0) {
- i--;
- n--;
+ k++;
continue;
}
continue;
}
- idx[i].if_index = conf.ifc_req[i].ifr_ifindex;
- idx[i].if_name = conf.ifc_req[i].ifr_name;
+ idx[i
-k
].if_index = conf.ifc_req[i].ifr_ifindex;
+ idx[i
-k
].if_name = conf.ifc_req[i].ifr_name;
}
}
- idx[i].if_name = 0;
- idx[i].if_index = 0;
+ idx[i
-k
].if_name = 0;
+ idx[i
-k
].if_index = 0;
return idx;
}
return idx;
}
@@
-48,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);