From fcdc67f963a44603553e52a0f883e5d0e5727b34 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 20 Sep 2002 20:06:45 +0000 Subject: * sysdeps/powerpc/bits/setjmp.h [__WORDSIZE]: Add 64-bit jmpbuf. * sysdeps/powerpc/bits/wordsize.h: New file. * sysdeps/powerpc/fpu/bits/mathinline.h (lrint, lrintf): Change long array to int array for 32-/64-bit compatibility. 2002-09-20 Roland McGrath * login/programs/utmpdump.c: Don't include , . * sysdeps/generic/utimes.c (__utimes): Don't check TVP for null. Reported by Bruno Haible . * sysdeps/generic/ifreq.h (__ifreq): Compute termination condition before doubling RQ_LEN. * sysdeps/unix/sysv/linux/ifreq.h (__ifreq): Likewise. Reported by Bruno Haible . 2002-09-18 Bruno Haible * login/logout.c (logout): Don't assume ut_time has the same size as a time_t. * login/logwtmp.c (logwtmp): Likewise. * sysdeps/pthread/configure: New file, moved here from linuxthreads/sysdeps/unix/sysv/linux/configure. --- sysdeps/unix/sysv/linux/ifreq.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/ifreq.h b/sysdeps/unix/sysv/linux/ifreq.h index 216c1f3373..9d42664444 100644 --- a/sysdeps/unix/sysv/linux/ifreq.h +++ b/sysdeps/unix/sysv/linux/ifreq.h @@ -26,7 +26,7 @@ #include "kernel-features.h" /* Variable to signal whether SIOCGIFCONF is not available. */ -#if __ASSUME_SIOCGIFNAME == 0 +#if __ASSUME_SIOCGIFNAME == 0 || 1 static int old_siocgifconf; #else # define old_siocgifconf 0 @@ -73,7 +73,7 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) rq_len = RQ_IFS * sizeof (struct ifreq); /* Read all the interfaces out of the kernel. */ - do + while (1) { ifc.ifc_len = rq_len; ifc.ifc_buf = realloc (ifc.ifc_buf, ifc.ifc_len); @@ -89,9 +89,12 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) *ifreqs = NULL; return; } + + if (!old_siocgifconf || ifc.ifc_len < rq_len) + break; + rq_len *= 2; } - while (ifc.ifc_len == rq_len && old_siocgifconf); nifs = ifc.ifc_len / sizeof (struct ifreq); -- cgit 1.4.1