]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
resolv: Turn _res_opcodes into a compatibility symbol
authorFlorian Weimer <fweimer@redhat.com>
Fri, 30 Jun 2017 09:31:41 +0000 (11:31 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 30 Jun 2017 09:31:41 +0000 (11:31 +0200)
ChangeLog
NEWS
include/resolv.h
resolv/res_debug.c

index a3969176ec0d853fafa5d4f7f56c6a1809645c9f..dca3cb28991b6faf40664bd253bb1e60f1e57ca6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+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.
diff --git a/NEWS b/NEWS
index 944804dcd5319e1d435bd64179fe7e2f260c1ea0..df6f3941809d233362e2baa1055792af8177abc5 100644 (file)
--- 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,
index 4d5b51e873ad62a177ba6e99e6f3abdb111fa825..2938506d75ee5d43e89ec71c5ef11b28defd2358 100644 (file)
@@ -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
index 182aeefa1f8683f481a0fce36717281fb2b69211..55d1fe9f89aedaf96feeb600a1903c82634da658 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
+#include <shlib-compat.h>
 
 #ifdef SPRINTF_CHAR
 # define SPRINTF(x) strlen(sprintf/**/x)
 
 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)) {