aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-06-30 11:31:41 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-06-30 11:31:41 +0200
commit6781d8e693eb9e1251875222db5c9885d7ebb596 (patch)
tree1d1aadb852c3fbaec07e0b22de9f6259f6c7e83f
parentd85f99679d89fb47426301620b7a980388fddcfd (diff)
downloadglibc-6781d8e693eb9e1251875222db5c9885d7ebb596.tar
glibc-6781d8e693eb9e1251875222db5c9885d7ebb596.tar.gz
glibc-6781d8e693eb9e1251875222db5c9885d7ebb596.tar.bz2
glibc-6781d8e693eb9e1251875222db5c9885d7ebb596.zip
resolv: Turn _res_opcodes into a compatibility symbol
-rw-r--r--ChangeLog7
-rw-r--r--NEWS3
-rw-r--r--include/resolv.h3
-rw-r--r--resolv/res_debug.c14
4 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index a3969176ec..dca3cb2899 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2017-06-30 Florian Weimer <fweimer@redhat.com>
+ * resolv/res_debug.c (_res_opcodes): Rename ...
+ (res_opcodes): ... as compatibility symbol.
+ (fp_nquery): Use res_opcodes.
+ * include/resolv.h (_res_opcodes): Remove declaration.
+
+2017-06-30 Florian Weimer <fweimer@redhat.com>
+
* include/resolv.h (res_pquery): Remove declaration.
* resolv/res_data.c (fp_nquery, fp_query, p_query): Remove
functions.
diff --git a/NEWS b/NEWS
index 944804dcd5..df6f394180 100644
--- a/NEWS
+++ b/NEWS
@@ -234,6 +234,9 @@ Version 2.26
will now randomly pick a name server from the configuration as a starting
point. (Previously, the second name server was always used.)
+* The _res_opcodes variable has been removed from libresolv. It had been
+ exported by accident.
+
Security related changes:
* The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
diff --git a/include/resolv.h b/include/resolv.h
index 4d5b51e873..2938506d75 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -90,8 +90,5 @@ libresolv_hidden_proto (__b64_ntop)
libresolv_hidden_proto (__dn_count_labels)
libresolv_hidden_proto (__p_secstodate)
-extern const char *_res_opcodes[];
-libresolv_hidden_proto (_res_opcodes)
-
# endif /* _RESOLV_H_ && !_ISOMAC */
#endif
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 182aeefa1f..55d1fe9f89 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -106,6 +106,7 @@
#include <stdlib.h>
#include <string.h>
#include <time.h>
+#include <shlib-compat.h>
#ifdef SPRINTF_CHAR
# define SPRINTF(x) strlen(sprintf/**/x)
@@ -115,7 +116,12 @@
extern const char *_res_sectioncodes[] attribute_hidden;
-const char *_res_opcodes[] =
+/* _res_opcodes was exported by accident as a variable. */
+#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_26)
+static const char *res_opcodes[] =
+#else
+static const char res_opcodes[][9] =
+#endif
{
"QUERY",
"IQUERY",
@@ -134,7 +140,9 @@ const char *_res_opcodes[] =
"ZONEINIT",
"ZONEREF",
};
-libresolv_hidden_data_def (_res_opcodes)
+#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_26)
+strong_alias (res_opcodes, _res_opcodes)
+#endif
static const char *p_section(int section, int opcode);
@@ -259,7 +267,7 @@ fp_nquery (const unsigned char *msg, int len, FILE *file)
if ((!pfcode) || (pfcode & RES_PRF_HEADX) || rcode)
fprintf(file,
";; ->>HEADER<<- opcode: %s, status: %s, id: %d\n",
- _res_opcodes[opcode], p_rcode(rcode), id);
+ res_opcodes[opcode], p_rcode(rcode), id);
if ((!pfcode) || (pfcode & RES_PRF_HEADX))
putc(';', file);
if ((!pfcode) || (pfcode & RES_PRF_HEAD2)) {