about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-05-02 15:25:20 +0200
committerFlorian Weimer <fweimer@redhat.com>2016-05-02 15:25:20 +0200
commit5018f16c6205404ba3aa7298dc8a3d45fbd46bfc (patch)
tree5d78047ea2ee964b7874be218fa9c9e91b18f420 /ChangeLog
parent46cb402c6d621ef89b23fa61247faf623e8fb306 (diff)
downloadglibc-5018f16c6205404ba3aa7298dc8a3d45fbd46bfc.tar.gz
glibc-5018f16c6205404ba3aa7298dc8a3d45fbd46bfc.tar.xz
glibc-5018f16c6205404ba3aa7298dc8a3d45fbd46bfc.zip
hesiod: Always use thread-local resolver state [BZ #19573]
The Hesiod implementation imported into glibc was enhanced
to support caller-supplied resolver states.  But its only
consumer is nss_hesiod, and it supplies the thread-local
resolver state.  Therefore, this commit changes the Hesiod
implementation to use the thread-local resolver state (_res)
directly.  This fixes bug 19573 because the Hesiod
implementation no longer has to initialize and free any
resolver state.

To avoid any risk of interposition of ABI-incompatible Hesiod
function implementations, this commit marks the Hesiod functions
as hidden.  (They were already hidden using a linker version
script.)
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog25
1 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a92df7310f..1149fd30e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,30 @@
 2016-05-02  Florian Weimer  <fweimer@redhat.com>
 
+	[BZ #19573]
+	* hesiod/Makefile (libnss_hesiod-routines): Remove hesiod-init.
+	* hesiod/nss_hesiod/hesiod-init.c: Remove file.
+	* hesiod/nss_hesiod/nss_hesiod.h: Likewise.
+	* hesiod/hesiod.h (__hesiod_res_get, __hesiod_res_set): Remove.
+	(hesiod_init, hesiod_end, hesiod_to_bind, hesiod_resolve)
+	(hesiod_free_list): Mark as hidden.
+	* hesiod/hesiod_p (struct hesiod_p): Remove res, free_res,
+	res_set, res_get.
+	* hesiod/hesiod.c: Remove unnecessary forward declarations.
+	(init, __hesiod_res_get, __hesiod_res_set): Remove.
+	(hesiod_init): Remove obsolete res_ninit call.
+	(hesiod_end): Do not free resolver state.  Do not invoke callback.
+	(hesiod_bind): Do not call init.
+	(get_txt_records): Use res_mkquery, res_send instead of
+	res_nmkquery, res_nsend.
+	* hesiod/nss_hesiod/hesiod-grp.c (lookup): Call hesiod_init
+	instead of _nss_hesiod_init.
+	(_nss_hesiod_initgroups_dyn): Likewise.
+	* hesiod/nss_hesiod/hesiod-proto.c (lookup): Likewise.
+	* hesiod/nss_hesiod/hesiod-pwd.c (lookup): Likewise.
+	* hesiod/nss_hesiod/hesiod-service.c (lookup): Likewise.
+
+2016-05-02  Florian Weimer  <fweimer@redhat.com>
+
 	* hesiod/hesiod_p.h (DEF_RHS): Remove.
 	* hesiod/hesiod.c (hesiod_init): Remove code for handling DEF_RHS.