Merge "Fix freeaddrinfo(NULL)."
diff --git a/libc/dns/net/getaddrinfo.c b/libc/dns/net/getaddrinfo.c
index f0d522a..c73c085 100644
--- a/libc/dns/net/getaddrinfo.c
+++ b/libc/dns/net/getaddrinfo.c
@@ -324,7 +324,11 @@
{
struct addrinfo *next;
- assert(ai != NULL);
+#if __ANDROID__
+ if (ai == NULL) return;
+#else
+ _DIAGASSERT(ai != NULL);
+#endif
do {
next = ai->ai_next;
diff --git a/tests/netdb_test.cpp b/tests/netdb_test.cpp
index ab5b487..5660bbd 100644
--- a/tests/netdb_test.cpp
+++ b/tests/netdb_test.cpp
@@ -23,6 +23,11 @@
#include <sys/socket.h>
#include <netinet/in.h>
+// https://code.google.com/p/android/issues/detail?id=13228
+TEST(netdb, freeaddrinfo_NULL) {
+ freeaddrinfo(NULL);
+}
+
TEST(netdb, getaddrinfo_NULL_host) {
// It's okay for the host argument to be NULL, as long as service isn't.
addrinfo* ai = NULL;