Replace res_randomid with arc4random_uniform
Test: built, flashed, booted
system/netd/tests/runtests.sh pass
Change-Id: Ie1f007f581c7e8becb429c0d27fd1c1b3a3f285e
diff --git a/resolv/res_init.cpp b/resolv/res_init.cpp
index eeafb0c..26cb9f3 100644
--- a/resolv/res_init.cpp
+++ b/resolv/res_init.cpp
@@ -144,7 +144,7 @@
statp->retrans = RES_TIMEOUT;
statp->retry = RES_DFLRETRY;
statp->options = RES_DEFAULT;
- statp->id = res_randomid();
+ statp->id = arc4random_uniform(65536);
statp->_mark = MARK_UNSET;
}
diff --git a/resolv/res_mkquery.cpp b/resolv/res_mkquery.cpp
index 32c413f..b2f97c7 100644
--- a/resolv/res_mkquery.cpp
+++ b/resolv/res_mkquery.cpp
@@ -125,7 +125,7 @@
if ((buf == NULL) || (buflen < HFIXEDSZ)) return (-1);
memset(buf, 0, HFIXEDSZ);
hp = (HEADER*) (void*) buf;
- hp->id = htons(res_randomid());
+ hp->id = htons(arc4random_uniform(65536));
hp->opcode = op;
hp->rd = (statp->options & RES_RECURSE) != 0U;
hp->ad = (statp->options & RES_USE_DNSSEC) != 0U;
diff --git a/resolv/res_send.cpp b/resolv/res_send.cpp
index 906269f..06cdb5b 100644
--- a/resolv/res_send.cpp
+++ b/resolv/res_send.cpp
@@ -251,7 +251,7 @@
/* first try to bind to a random source port a few times */
for (j = 0; j < 10; j++) {
/* find a random port between 1025 .. 65534 */
- int port = 1025 + (res_randomid() % (65535 - 1025));
+ int port = 1025 + (arc4random_uniform(65535 - 1025));
if (family == AF_INET)
u.sin.sin_port = htons(port);
else
diff --git a/resolv/resolv_private.h b/resolv/resolv_private.h
index 3dfb999..d4b38be 100644
--- a/resolv/resolv_private.h
+++ b/resolv/resolv_private.h
@@ -250,8 +250,6 @@
struct android_net_context; /* forward */
void res_setnetcontext(res_state, const struct android_net_context*);
-u_int res_randomid(void);
-
int getaddrinfo_numeric(const char* hostname, const char* servname, addrinfo hints,
addrinfo** result);