aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2014-06-16 10:26:07 -0700
committerDan Albert <danalbert@google.com>2014-06-16 10:26:07 -0700
commit573ffd03049495be0921cc8c6461c32be5f0ee60 (patch)
treee95bd28fc179bbe98f352856e7aa6be48e1b47e5
parentdda7bc2000ee9df014ecdadb20e9df6abd5716e4 (diff)
downloadandroid_external_dhcpcd-573ffd03049495be0921cc8c6461c32be5f0ee60.tar.gz
android_external_dhcpcd-573ffd03049495be0921cc8c6461c32be5f0ee60.tar.bz2
android_external_dhcpcd-573ffd03049495be0921cc8c6461c32be5f0ee60.zip
Update compat/closefrom.c to upstream ToT.
Needed because the old code uses getdtablesize(), which is being removed from bionic. The new version uses syconf(_SC_OPEN_MAX). Change-Id: Iab47e15f98aa6ff3a622d78cd0af97b65847e412
-rw-r--r--compat/closefrom.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/compat/closefrom.c b/compat/closefrom.c
index 664c4bc..9d34a53 100644
--- a/compat/closefrom.c
+++ b/compat/closefrom.c
@@ -32,11 +32,18 @@
int
closefrom(int fd)
{
- int max = getdtablesize();
- int i;
- int r = 0;
+ long max;
+ int i, r;
- for (i = fd; i < max; i++)
- r += close(i);
+#ifdef _SC_OPEN_MAX
+ max = sysconf(_SC_OPEN_MAX);
+#else
+ max = getdtablesize();
+#endif
+ r = 0;
+ for (i = fd; i < max; i++) {
+ if (close(i) == -1)
+ r = -1;
+ }
return r;
}