This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nss/21962] NSS lookup functions accidentally exported with non-standard ABI on i386
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 14 Aug 2017 16:15:53 +0000
- Subject: [Bug nss/21962] NSS lookup functions accidentally exported with non-standard ABI on i386
- Auto-submitted: auto-generated
- References: <bug-21962-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=21962
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via c88ffc239e8d8820f6d1d4e185984e6093a1e4d7 (commit)
from 2a124c616384f140a21ee675b3e6799f8e0e7592 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c88ffc239e8d8820f6d1d4e185984e6093a1e4d7
commit c88ffc239e8d8820f6d1d4e185984e6093a1e4d7
Author: Florian Weimer <fweimer@redhat.com>
Date: Mon Aug 14 17:12:05 2017 +0200
NSS: Replace exported NSS lookup functions with stubs [BZ #21962]
Commit 384ca551743318bd9c9e24a496d6397f2e3f2a49 from 2007 added this to
nss/XXX-lookup.c:
+#ifndef NO_COMPAT
+int
+internal_function attribute_compat_text_section
+DB_COMPAT_FCT (service_user **ni, const char *fct_name, void **fctp)
+{
+ return DB_LOOKUP_FCT (ni, fct_name, NULL, fctp);
+}
+#endif
That is, it adds a pseudo-compat function with an internal_function
attribute. The function it was supposed to replace did not have the
attribute:
extern int DB_LOOKUP_FCT (service_user **ni, const char *fct_name,
- void **fctp) internal_function;
+ const char *fct2_name, void **fctp)
+ internal_function;
This changed the calling convention on i386 for the following
functions in the public ABI:
__nss_passwd_lookup
__nss_group_lookup
__nss_hosts_lookup
This commit replaces the functions with always-failing stubs,
with true compat symbols. Due to a happy accident, the calling
convention of the stub is identical for the internal_function
and non-internal_function case on i386.
In addition, this commit auto-generates the __nss_*_lookup2
function declarations as part of <nsswitch.h>.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 26 ++++++++++++++++++++++++++
grp/initgroups.c | 5 -----
inet/ether_hton.c | 7 +------
inet/ether_ntoh.c | 7 +------
inet/getnetgrent_r.c | 6 +-----
nss/Makefile | 3 ++-
nss/Versions | 2 ++
nss/XXX-lookup.c | 15 ---------------
nss/compat-lookup.c | 42 ++++++++++++++++++++++++++++++++++++++++++
nss/nsswitch.h | 8 ++++++++
nss/service-lookup.c | 1 -
sunrpc/netname.c | 5 +----
sunrpc/publickey.c | 9 ++-------
13 files changed, 86 insertions(+), 50 deletions(-)
create mode 100644 nss/compat-lookup.c
--
You are receiving this mail because:
You are on the CC list for the bug.