aboutsummaryrefslogtreecommitdiffstats
path: root/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch')
-rw-r--r--main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch b/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
new file mode 100644
index 0000000000..023b508b01
--- /dev/null
+++ b/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
@@ -0,0 +1,66 @@
+From fb2c3b37d1022d84506ca0815c7c888c4f08e90c Mon Sep 17 00:00:00 2001
+From: xentec <xentec@aix0.eu>
+Date: Sat, 11 Feb 2017 14:39:24 +0000
+Subject: [PATCH 2/3] Replace missing res_randomid() with the more secure
+ arc4random()
+
+---
+ configure.ac | 2 ++
+ openbsd-compat/openbsd-compat.h | 2 ++
+ src/res_mkquery.c | 2 +-
+ src/res_send_async.c | 2 +-
+ 4 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 10aff04..fa0e896 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -264,6 +264,8 @@ AC_ARG_WITH([Werror],
+ )
+ #l325
+
++LIBS="-lcrypto $LIBS"
++
+ AC_CHECK_HEADERS([ \
+ crypt.h \
+ dirent.h \
+diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h
+index c30591c..9be2e0b 100644
+--- a/openbsd-compat/openbsd-compat.h
++++ b/openbsd-compat/openbsd-compat.h
+@@ -123,4 +123,6 @@ int res_hnok(const char *);
+ int clock_gettime(int, struct timespec *);
+ #endif
+
++unsigned int arc4random(void);
++
+ #endif /* _OPENBSD_COMPAT_H */
+diff --git a/src/res_mkquery.c b/src/res_mkquery.c
+index 27ed21e..cce4029 100644
+--- a/src/res_mkquery.c
++++ b/src/res_mkquery.c
+@@ -57,7 +57,7 @@ res_mkquery(int op, const char *dname, int class, int type,
+ ac = asr_use_resolver(NULL);
+
+ memset(&h, 0, sizeof h);
+- h.id = res_randomid();
++ h.id = arc4random();
+ if (ac->ac_options & RES_RECURSE)
+ h.flags |= RD_MASK;
+ h.qdcount = 1;
+diff --git a/src/res_send_async.c b/src/res_send_async.c
+index a60aa0d..a0f4704 100644
+--- a/src/res_send_async.c
++++ b/src/res_send_async.c
+@@ -380,7 +380,7 @@ setup_query(struct asr_query *as, const char *name, const char *dom,
+ as->as.dns.obuflen = 0;
+
+ memset(&h, 0, sizeof h);
+- h.id = res_randomid();
++ h.id = arc4random();
+ if (as->as_ctx->ac_options & RES_RECURSE)
+ h.flags |= RD_MASK;
+ h.qdcount = 1;
+--
+2.11.1
+