commit nss_ldap for openSUSE:Factory
Hello community,
here is the log from the commit of package nss_ldap for openSUSE:Factory checked in at 2016-08-29 15:40:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nss_ldap (Old)
and /work/SRC/openSUSE:Factory/.nss_ldap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nss_ldap"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nss_ldap/nss_ldap.changes 2015-09-08 17:44:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.nss_ldap.new/nss_ldap.changes 2016-08-29 15:43:03.000000000 +0200
@@ -1,0 +2,23 @@
+Fri Aug 26 09:49:48 UTC 2016 - hguo@suse.com
+
+- Relabel patches:
+ nss_ldap.dif -> 0000-nss_ldap.dif
+ group-utf8.dif -> 0001-group-utf8.dif
+ nss_ldap-ldapconn-leak-bug418.dif ->
+ 0002-nss_ldap-ldapconn-leak-bug418.dif
+ nss_ldap-getent-retry.dif -> 0003-nss_ldap-getent-retry.dif
+ nss_ldap-getent-skip-invalid-uidgidnumber.dif ->
+ 0004-nss_ldap-getent-skip-invalid-uidgidnumber.dif
+ nss_ldap-265-glibc-2.16.patch -> 0005-nss_ldap-265-glibc-2.16.patch
+ nss_ldap-265-pthread.patch -> 0006-nss_ldap-265-pthread.patch
+ bnc#842120.dif -> 0007-bnc#842120.dif
+ bnc#866763.dif -> 0008-bnc#866763.dif
+- Add patches:
+ * Resolve a connection management issue in oneshot operation mode &
+ Fix bad variable initialisation (bsc#934444)
+ 0009-fix-for-BUG-412-don-t-close-nested-contexts.patch
+ 0010-initialize-context-in-_nss_ldap_getbyname.patch
+ * Fix buffer management issue between glibc and LDAP (bsc#986858)
+ 0011-When-invoked-via-glibc-the-input-buffer-is-enlarged.patch
+
+-------------------------------------------------------------------
Old:
----
bnc#842120.dif
bnc#866763.dif
group-utf8.dif
nss_ldap-265-glibc-2.16.patch
nss_ldap-265-pthread.patch
nss_ldap-getent-retry.dif
nss_ldap-getent-skip-invalid-uidgidnumber.dif
nss_ldap-ldapconn-leak-bug418.dif
nss_ldap.dif
New:
----
0000-nss_ldap.dif
0001-group-utf8.dif
0002-nss_ldap-ldapconn-leak-bug418.dif
0003-nss_ldap-getent-retry.dif
0004-nss_ldap-getent-skip-invalid-uidgidnumber.dif
0005-nss_ldap-265-glibc-2.16.patch
0006-nss_ldap-265-pthread.patch
0007-bnc#842120.dif
0008-bnc#866763.dif
0009-fix-for-BUG-412-don-t-close-nested-contexts.patch
0010-initialize-context-in-_nss_ldap_getbyname.patch
0011-When-invoked-via-glibc-the-input-buffer-is-enlarged.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nss_ldap.spec ++++++
--- /var/tmp/diff_new_pack.AfjDmS/_old 2016-08-29 15:43:07.000000000 +0200
+++ /var/tmp/diff_new_pack.AfjDmS/_new 2016-08-29 15:43:07.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package nss_ldap
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,19 +27,22 @@
Source1: README.SUSE
Source2: baselibs.conf
Source3: ldap.conf
-Patch0: nss_ldap.dif
-Patch1: group-utf8.dif
-Patch2: nss_ldap-ldapconn-leak-bug418.dif
-Patch3: nss_ldap-getent-retry.dif
-Patch4: nss_ldap-getent-skip-invalid-uidgidnumber.dif
+Patch0: 0000-nss_ldap.dif
+Patch1: 0001-group-utf8.dif
+Patch2: 0002-nss_ldap-ldapconn-leak-bug418.dif
+Patch3: 0003-nss_ldap-getent-retry.dif
+Patch4: 0004-nss_ldap-getent-skip-invalid-uidgidnumber.dif
# Upstream issue with glibc-2.16 http://bugzilla.padl.com/show_bug.cgi?id=445
-Patch5: nss_ldap-265-glibc-2.16.patch
+Patch5: 0005-nss_ldap-265-glibc-2.16.patch
# Fix also issue with threads on glibc-2.16 http://bugzilla.padl.com/show_bug.cgi?id=446
-Patch6: nss_ldap-265-pthread.patch
+Patch6: 0006-nss_ldap-265-pthread.patch
# SIGPIPE handling atfork
-Patch7: bnc#842120.dif
+Patch7: 0007-bnc#842120.dif
# reverse ipv6 host lookups fail when ldap is used
-Patch8: bnc#866763.dif
+Patch8: 0008-bnc#866763.dif
+Patch9: 0009-fix-for-BUG-412-don-t-close-nested-contexts.patch
+Patch10: 0010-initialize-context-in-_nss_ldap_getbyname.patch
+Patch11: 0011-When-invoked-via-glibc-the-input-buffer-is-enlarged.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: db-devel
@@ -69,6 +72,9 @@
%patch6
%patch7 -p1
%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
cp -v %{SOURCE1} .
%build
++++++ 0000-nss_ldap.dif ++++++
Index: nss_ldap-265/ldap-nss.c
===================================================================
--- nss_ldap-265.orig/ldap-nss.c
+++ nss_ldap-265/ldap-nss.c
@@ -2640,7 +2640,8 @@ do_with_reconnect (const char *base, int
* If a soft reconnect policy is specified, then do not
* try to reconnect to the LDAP server if it is down.
*/
- if (__session.ls_config->ldc_reconnect_pol == LP_RECONNECT_SOFT)
+ if ( (__session.ls_config->ldc_reconnect_pol == LP_RECONNECT_SOFT) &&
+ ( tries > 0 ) )
hard = 0;
++tries;
Index: nss_ldap-265/Makefile.am
===================================================================
--- nss_ldap-265.orig/Makefile.am
+++ nss_ldap-265/Makefile.am
@@ -109,5 +109,5 @@ uninstall-local:
@$(NORMAL_UNINSTALL)
vers.c: $(top_srcdir)/CVSVersionInfo.txt
- CVSVERSIONDIR=$(top_srcdir) vers_string -v
+ CVSVERSIONDIR=$(top_srcdir) ./vers_string -v
++++++ 0001-group-utf8.dif ++++++
Index: nss_ldap-265/ldap-grp.c
===================================================================
--- nss_ldap-265.orig/ldap-grp.c
+++ nss_ldap-265/ldap-grp.c
@@ -591,8 +591,9 @@ _nss_ldap_parse_gr (LDAPMessage * e,
10);
stat =
- _nss_ldap_getrdnvalue (e, ATM (LM_GROUP, cn), &gr->gr_name, &buffer,
+ _nss_ldap_assign_attrval (e, ATM (LM_GROUP, cn), &gr->gr_name, &buffer,
&buflen);
+
if (stat != NSS_SUCCESS)
return stat;
++++++ 0002-nss_ldap-ldapconn-leak-bug418.dif ++++++
bnc#659100, PADL#418
Index: nss_ldap-265/ldap-nss.c
===================================================================
--- nss_ldap-265.orig/ldap-nss.c
+++ nss_ldap-265/ldap-nss.c
@@ -1234,9 +1234,14 @@ do_init (void)
}
}
- __session.ls_conn = NULL;
+ /* looks like a problem. could be initialized, but not connected */
+ if (__session.ls_state != LS_UNINITIALIZED)
+ {
+ debug ("<== do_init (already initialized)");
+ goto initialized;
+ }
+
__session.ls_timestamp = 0;
- __session.ls_state = LS_UNINITIALIZED;
#if defined(HAVE_PTHREAD_ONCE) && defined(HAVE_PTHREAD_ATFORK)
if (pthread_once (&__once, do_atfork_setup) != 0)
@@ -1356,6 +1361,7 @@ do_init (void)
debug ("<== do_init (initialized session)");
+initialized:
return NSS_SUCCESS;
}
@@ -1575,6 +1581,7 @@ do_open (void)
}
else
{
+ syslog(LOG_ERR, "nss-ldap: do_open: do_start_tls failed:stat=%d", stat);
do_close ();
debug ("<== do_open (TLS startup failed)");
return stat;
++++++ 0003-nss_ldap-getent-retry.dif ++++++
bnc#662752, PADL#215
Index: nss_ldap-265/ldap-nss.c
===================================================================
--- nss_ldap-265.orig/ldap-nss.c
+++ nss_ldap-265/ldap-nss.c
@@ -2033,6 +2033,7 @@ _nss_ldap_ent_context_init_locked (ent_c
ctx->ec_msgid = -1;
ctx->ec_sd = NULL;
ctx->ec_eof = 0;
+ ctx->ec_ldaprc = 0;
LS_INIT (ctx->ec_state);
@@ -2067,6 +2068,7 @@ do_context_release (ent_context_t * ctx,
ctx->ec_sd = NULL;
ctx->ec_eof = 0;
+ ctx->ec_ldaprc = 0;
LS_INIT (ctx->ec_state);
@@ -2491,6 +2493,7 @@ do_result (ent_context_t * ctx, int all)
syslog (LOG_ERR, "nss_ldap: could not get LDAP result - %s",
ldap_err2string (rc));
do_close();
+ ctx->ec_ldaprc = rc;
stat = NSS_UNAVAIL;
break;
case LDAP_RES_SEARCH_ENTRY:
@@ -3395,6 +3398,9 @@ _nss_ldap_getent_ex (ldap_args_t * args,
const char **user_attrs, parser_t parser)
{
NSS_STATUS stat = NSS_SUCCESS;
+ int retry;
+
+ retry = (__session.ls_state == LS_CONNECTED_TO_DSA ) ? 1 : 0;
debug ("==> _nss_ldap_getent_ex");
@@ -3437,6 +3443,18 @@ next:
stat = do_parse (*ctx, result, buffer, buflen, errnop, parser);
+ if (stat == NSS_UNAVAIL && retry &&
+ ( ((*ctx)->ec_ldaprc == LDAP_UNAVAILABLE) ||
+ ((*ctx)->ec_ldaprc == LDAP_SERVER_DOWN) )
+ )
+ {
+ retry = 0;
+ (*ctx)->ec_msgid = -1;
+ syslog (LOG_ERR, "nss_ldap: Server might have closed connection. Retrying.");
+ goto next;
+ }
+
+ retry = 0;
#ifdef HAVE_LDAP_SEARCH_EXT
if (stat == NSS_NOTFOUND)
{
Index: nss_ldap-265/ldap-nss.h
===================================================================
--- nss_ldap-265.orig/ldap-nss.h
+++ nss_ldap-265/ldap-nss.h
@@ -570,6 +570,7 @@ struct ent_context
{
ldap_state_t ec_state; /* eg. for services */
int ec_msgid; /* message ID */
+ int ec_ldaprc; /* LDAP error code */
LDAPMessage *ec_res; /* result chain */
ldap_service_search_descriptor_t *ec_sd; /* current sd */
struct berval *ec_cookie; /* cookie for paged searches */
++++++ 0004-nss_ldap-getent-skip-invalid-uidgidnumber.dif ++++++
Index: nss_ldap-265/ldap-pwd.c
===================================================================
--- nss_ldap-265.orig/ldap-pwd.c
+++ nss_ldap-265/ldap-pwd.c
@@ -121,7 +121,17 @@ _nss_ldap_parse_pw (LDAPMessage * e,
stat =
_nss_ldap_assign_attrval (e, AT (uidNumber), &uid, &tmp, &tmplen);
if (stat != NSS_SUCCESS)
- return stat;
+ {
+ /*
+ * uidNumber is to large to fit into the fixed size tmpbuf buffer,
+ * handle this as if it was a Schema violation to skip this entry,
+ * such large ids aren't valid
+ */
+ if ( stat == NSS_TRYAGAIN )
+ stat = NSS_NOTFOUND;
+ return stat;
+ }
+
if (*uid == '\0')
pw->pw_uid = UID_NOBODY;
else
@@ -138,7 +148,16 @@ _nss_ldap_parse_pw (LDAPMessage * e,
_nss_ldap_assign_attrval (e, ATM (LM_PASSWD, gidNumber), &gid, &tmp,
&tmplen);
if (stat != NSS_SUCCESS)
- return stat;
+ {
+ /*
+ * gidNumber is to large to fit into the fixed size tmpbuf buffer,
+ * handle this as if it was a Schema violation to skip this entry,
+ * such large ids aren't valid
+ */
+ if ( stat == NSS_TRYAGAIN )
+ stat = NSS_NOTFOUND;
+ return stat;
+ }
if (*gid == '\0')
pw->pw_gid = GID_NOBODY;
else
++++++ 0005-nss_ldap-265-glibc-2.16.patch ++++++
--- ldap-nss.c.orig 2012-10-17 12:32:03.908730283 +0000
+++ ldap-nss.c 2012-10-17 12:38:10.906767283 +0000
@@ -148,7 +148,7 @@
*/
static ldap_session_t __session = { NULL, NULL, 0, LS_UNINITIALIZED };
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
static pthread_once_t __once = PTHREAD_ONCE_INIT;
#endif
@@ -168,7 +168,7 @@
static int __ssl_initialized = 0;
#endif /* HAVE_LDAPSSL_CLIENT_INIT */
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
/*
* Prepare for fork(); lock mutex.
*/
@@ -519,7 +519,7 @@
}
#endif /* HAVE_NSSWITCH_H */
-#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE)
static void
do_atfork_prepare (void)
{
@@ -553,7 +553,7 @@
#ifdef HAVE_PTHREAD_ATFORK
(void) pthread_atfork (do_atfork_prepare, do_atfork_parent,
do_atfork_child);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ATFORK)
(void) __libc_atfork (do_atfork_prepare, do_atfork_parent, do_atfork_child);
#endif
@@ -1119,7 +1119,7 @@
}
#ifndef HAVE_PTHREAD_ATFORK
-#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE___LIBC_ONCE)
/*
* This bogosity is necessary because Linux uses different
* PIDs for different threads (like IRIX, which we don't
@@ -1151,7 +1151,7 @@
pid = -1; /* linked against libpthreads, don't care */
#else
pid = getpid ();
-#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
+#endif /* HAVE___LIBC_ONCE */
#endif /* HAVE_PTHREAD_ATFORK */
euid = geteuid ();
@@ -1161,7 +1161,7 @@
syslog (LOG_DEBUG,
"nss_ldap: __session.ls_state=%d, __session.ls_conn=%p, __euid=%i, euid=%i",
__session.ls_state, __session.ls_conn, __euid, euid);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ONCE)
syslog (LOG_DEBUG,
"nss_ldap: libpthreads=%s, __session.ls_state=%d, __session.ls_conn=%p, __pid=%i, pid=%i, __euid=%i, euid=%i",
((__pthread_once == NULL || __pthread_atfork == NULL) ? "FALSE" : "TRUE"),
@@ -1185,11 +1185,11 @@
}
else
#ifndef HAVE_PTHREAD_ATFORK
-#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#if defined(HAVE___LIBC_ONCE)
if ((__pthread_once == NULL || __pthread_atfork == NULL) && __pid != pid)
#else
if (__pid != pid)
-#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */
+#endif /* HAVE___LIBC_ONCE */
{
do_close_no_unbind ();
}
@@ -1250,9 +1250,9 @@
debug ("<== do_init (pthread_once failed)");
return NSS_UNAVAIL;
}
-#elif defined(HAVE_PTHREAD_ATFORK) && ( defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) )
+#elif defined(HAVE_PTHREAD_ATFORK) && defined(HAVE___LIBC_ONCE)
__libc_once (__once, do_atfork_setup);
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_ONCE)
/*
* Only install the pthread_atfork() handlers i
* we are linked against libpthreads. Otherwise,
--- ldap-nss.h.orig 2012-10-17 12:33:05.681379283 +0000
+++ ldap-nss.h 2012-10-17 12:34:06.337050753 +0000
@@ -671,7 +671,7 @@
#define NSS_LDAP_LOCK(m) mutex_lock(&m)
#define NSS_LDAP_UNLOCK(m) mutex_unlock(&m)
#define NSS_LDAP_DEFINE_LOCK(m) static mutex_t m = DEFAULTMUTEX
-#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H)
+#elif defined(HAVE___LIBC_LOCK_LOCK) && defined(HAVE___LIBC_LOCK_UNLOCK)
#define NSS_LDAP_LOCK(m) __libc_lock_lock(m)
#define NSS_LDAP_UNLOCK(m) __libc_lock_unlock(m)
#define NSS_LDAP_DEFINE_LOCK(m) static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER
--- ldap-nss.c.orig 2012-10-17 12:58:20.270783283 +0000
+++ ldap-nss.c 2012-10-17 12:58:43.699267283 +0000
@@ -156,7 +156,7 @@
static FILE *__debugfile;
#endif /* LBER_OPT_LOG_PRINT_FILE */
-#ifndef HAVE_PTHREAD_ATFORK
+#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE)
/*
* Process ID that opened the session.
*/
--- configure.in.orig 2012-10-17 12:59:31.707235283 +0000
+++ configure.in 2012-10-17 13:00:15.854289283 +0000
@@ -255,6 +255,7 @@
AC_CHECK_FUNCS(pthread_once)
AC_CHECK_FUNCS(ether_aton)
AC_CHECK_FUNCS(ether_ntoa)
+AC_CHECK_FUNCS(__libc_once __libc_atfork __libc_lock_lock __libc_lock_unlock)
AC_MSG_CHECKING(for struct ether_addr)
AC_TRY_COMPILE([#include
From 2dbece566df68ce1f48fa066509e7dc4added676 Mon Sep 17 00:00:00 2001 From: Luke Howard
Date: Wed, 24 Feb 2010 11:28:53 +0000 Subject: [PATCH] fix for BUG#412: don't close nested contexts
diff --git a/ldap-grp.c b/ldap-grp.c index b4770c1..810bb60 100644 --- a/ldap-grp.c +++ b/ldap-grp.c @@ -859,7 +859,7 @@ ng_chase (const char *dn, ldap_initgroups_args_t * lia) LA_STRING (a) = dn; LA_TYPE (a) = LA_TYPE_STRING; - if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) + if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) { return NSS_UNAVAIL; } @@ -931,7 +931,7 @@ ng_chase_backlink (const char ** membersOf, ldap_initgroups_args_t * lia) LA_STRING_LIST (a) = filteredMembersOf; LA_TYPE (a) = LA_TYPE_STRING_LIST_OR; - if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) + if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) { free (filteredMembersOf); return NSS_UNAVAIL; diff --git a/ldap-netgrp.c b/ldap-netgrp.c index 092efc2..b495ad5 100644 --- a/ldap-netgrp.c +++ b/ldap-netgrp.c @@ -691,7 +691,7 @@ do_innetgr_nested (ldap_innetgr_args_t * li_args, const char *nested) LA_TYPE (a) = LA_TYPE_STRING; LA_STRING (a) = nested; /* memberNisNetgroup */ - if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) + if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) { debug ("<== do_innetgr_nested: failed to initialize context"); return NSS_UNAVAIL; diff --git a/ldap-nss.c b/ldap-nss.c index 28c6b3e..2105157 100644 --- a/ldap-nss.c +++ b/ldap-nss.c @@ -2029,7 +2029,7 @@ _nss_ldap_ent_context_init_locked (ent_context_t ** pctx) if (ctx == NULL) { - ctx = (ent_context_t *) malloc (sizeof (*ctx)); + ctx = (ent_context_t *) calloc (1, sizeof (*ctx)); if (ctx == NULL) { debug ("<== _nss_ldap_ent_context_init_locked"); @@ -2067,6 +2067,20 @@ _nss_ldap_ent_context_init_locked (ent_context_t ** pctx) return ctx; } +ent_context_t * +_nss_ldap_ent_context_init_internal_locked (ent_context_t ** pctx) +{ + ent_context_t *ctx; + + ctx = _nss_ldap_ent_context_init_locked (pctx); + if (ctx == NULL) + return NULL; + + ctx->ec_internal = 1; + + return ctx; +} + static void do_context_release (ent_context_t * ctx, int free_context) { @@ -2096,7 +2110,8 @@ do_context_release (ent_context_t * ctx, int free_context) LS_INIT (ctx->ec_state); - if (_nss_ldap_test_config_flag (NSS_LDAP_FLAGS_CONNECT_POLICY_ONESHOT)) + if (!ctx->ec_internal && + _nss_ldap_test_config_flag (NSS_LDAP_FLAGS_CONNECT_POLICY_ONESHOT)) { do_close (); } diff --git a/ldap-nss.h b/ldap-nss.h index b58f28b..1e96005 100644 --- a/ldap-nss.h +++ b/ldap-nss.h @@ -573,7 +573,9 @@ struct ent_context LDAPMessage *ec_res; /* result chain */ ldap_service_search_descriptor_t *ec_sd; /* current sd */ struct berval *ec_cookie; /* cookie for paged searches */ - int ec_eof; /* reached notional end of file */ + int ec_eof : 1; /* reached notional end of file */ + int ec_internal : 1; /* this context is just a part of a larger + * query for information */ }; typedef struct ent_context ent_context_t; @@ -766,6 +768,15 @@ ent_context_t *_nss_ldap_ent_context_init (ent_context_t **); ent_context_t *_nss_ldap_ent_context_init_locked (ent_context_t **); /* + * _nss_ldap_ent_context_init_internal_locked() has the same + * behaviour, except it marks the context as one that's being + * used to fetch additional data used in answering a request, i.e. + * that this isn't the "main" context + */ + +ent_context_t *_nss_ldap_ent_context_init_internal_locked (ent_context_t **); + +/* * _nss_ldap_ent_context_release() is used to manually free a context */ void _nss_ldap_ent_context_release (ent_context_t **); -- 2.4.3 ++++++ 0010-initialize-context-in-_nss_ldap_getbyname.patch ++++++
From e71be5f00337ae890fa219e0cb4459aa435a6437 Mon Sep 17 00:00:00 2001 From: Luke Howard
Date: Fri, 19 Mar 2010 16:42:20 +0000 Subject: [PATCH] initialize context in _nss_ldap_getbyname()
The patch was slightly adjusted by Howard Guo
From a12feab75b33a6fc09233794eff203416ca6ebd8 Mon Sep 17 00:00:00 2001 From: HouzuoGuo
Date: Fri, 26 Aug 2016 11:07:15 +0200 Subject: [PATCH] When invoked via glibc, the input buffer is enlarged only if errnop is set to ERANGE, so set it that way to comply with glibc's expectation.
Authored by William Preston
participants (1)
-
root@hilbert.suse.de