From 6781d8e693eb9e1251875222db5c9885d7ebb596 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 30 Jun 2017 11:31:41 +0200 Subject: [PATCH] resolv: Turn _res_opcodes into a compatibility symbol --- ChangeLog | 7 +++++++ NEWS | 3 +++ include/resolv.h | 3 --- resolv/res_debug.c | 14 +++++++++++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a3969176ec..dca3cb2899 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2017-06-30 Florian Weimer + + * 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 * include/resolv.h (res_pquery): Remove declaration. 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 #include #include +#include #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)) { -- 2.43.5