Blob Blame History Raw
2018-02-18  Arthur de Jong <>

	* [382b6ea] INSTALL, ar-lib, config.guess, config.sub, depcomp,
	  py-compile: Update files from latest automake

2018-02-17  Arthur de Jong <>

	* [e8a4705] tests/ Fix running pylint on distcheck

	  This sets PYTHONPATH so that both the source and build directories
	  are used to find

2018-02-17  Arthur de Jong <>

	* [9a50971] common/expr.c, compat/attrs.h: Mark case blocks without
	  break statement

	  This avoids a gcc warning in non-empty case blocks without a
	  break statement by explicitly marking those blocks.

2018-02-16  Arthur de Jong <>

	* [c05e326] nslcd/cfg.c, nslcd/common.h: Increase size of hostname

	  This increases the host name buffer to support host names (that
	  include FQDNs) to 255 characters and removes the reliance on
	  HOST_NAME_MAX and _POSIX_HOST_NAME_MAX which may be smaller in
	  some situations.


2017-12-23  Arthur de Jong <>

	* [9760dce] nslcd/cfg.c: Increase size of config file token

	  This increases the maximum size of tokens that are read from
	  the nslcd.conf configuration file to 256 characters. This was
	  a problem for some very long uri values.


2017-10-13  Arthur de Jong <>

	* [8f76d24] nslcd/cfg.c, tests/test_cfg.c: Support spaces in
	  attribute mapping expressions

2017-06-26  Arthur de Jong <>

	* [47fd03b] AUTHORS, ChangeLog, NEWS,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml,
	  nslcd/nslcd.c, pynslcd/, utils/ Get files
	  ready for 0.9.8 release

2017-06-25  Arthur de Jong <>

	* [7920d85] tests/, tests/ Ignore
	  password hashes in consistent manner

	  This changes the getent and getent.ldap tests to ignore password
	  hashes that may be present in shadow lookups in a consistent

	  This also adds minor compatibility improvements.

2017-06-25  Arthur de Jong <>

	* [65695aa] pynslcd/, pynslcd/, pynslcd/
	  Create pidfile directory in pynslcd

	  This ensures that /var/run/nslcd is created (when it does not
	  exist) when starting pynslcd.

2017-06-25  Arthur de Jong <>

	* [419aab2] pynslcd/, pynslcd/, pynslcd/
	  Add nss_uid_offset and nss_gid_offset to pynslcd

2017-03-20  Seth Wright <>

	* [5103173] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h,
	  nslcd/group.c, nslcd/passwd.c: Add the ability to offset UID
	  and GID numbers

2017-06-18  Arthur de Jong <>

	* [fee74d9] tests/, tests/ Portability
	  improvements to

	  This fixes an issue with the export statement in POSIX shell
	  scripts, ensures that the commands in the output match those
	  in the script, strips password hashes for shadow lookups (for
	  systems without PAM where these are exposed) and only runs the
	  tests if we enabled the utils.

	  Fixes 246a1f3.

2017-06-17  Arthur de Jong <>

	* [5126b26] nslcd/ether.c: Use uint8_t instead of u_int8_t

	  The former seems to be available on more platforms than the latter.

	  Fixes be26510.

2017-06-17  Arthur de Jong <>

	* [fe3772f] compat/pam_compat.h: Fix HAVE_DECL_PAM_ERROR usage

	  The macro is supposed to be defined to 0 (instead of undefined)
	  if pam_info() and pam_error() are not found.

	  Fixes 3d5ab89.

2017-06-17  Arthur de Jong <>

	* [ca62f59] nslcd/shadow.c: Also filter shadow entries by validnames

2017-06-17  Arthur de Jong <>

	* [e68b85a] nslcd/passwd.c, nslcd/shadow.c: Fix and clarify a
	  few comments

2017-06-16  Arthur de Jong <>

	* [3d5ab89] compat/pam_compat.h, Fix pam_info()
	  and pam_error() replacement

	  On FreeBSD these are functions while on Linux they are macros
	  causing them to be incorrectly replaced on FreeBSD. This resulted
	  in a crash of the PAM module when e.g. presenting messages about
	  password expiry.

2017-06-16  Arthur de Jong <>

	* [b5d1dd2] tests/ Clean log from test_pamcmds.expect

	  This removes test_pamcmds.log that is generated by
	  test_pamcmds.expect when running the test suite. This avoids an
	  error in the distcheck target.

2017-06-16  Arthur de Jong <>

	* [246a1f3] tests/ Fix running
	  during distcheck

	  This ensures that Python can find both (from source
	  directory) and (from build directory) when running
	  the tests from the distcheck target.

	  This also makes the script more similar to

	  Fixes 9c803d7.

2017-06-15  Arthur de Jong <>

	* [43862ba] : Add pam_authc_search option

	  This option can be used to configure the search operation that
	  should be performed after authentication.

2017-06-15  Arthur de Jong <>

	* [5141b09] man/nslcd.conf.5.xml, nslcd/pam.c: Allow skipping
	  post-authentication search altogether

2017-06-14  Arthur de Jong <>

	* [0cafb08] nslcd/myldap.c, nslcd/myldap.h, nslcd/pam.c,
	  nslcd/usermod.c: Implement myldap_bind() function

	  This function integrates the myldap_set_credentials() and
	  myldap_get_policy_response() and performs the bind operation
	  witout actually performing a search.

	  The function performs a "fake" search that returns after performing
	  the LDAP BIND operation.

	  This replaces a number of dummy search operations that were there
	  to ensure that the connection was open. This allows us to skip
	  the search operation after authentication.

2017-06-14  Arthur de Jong <>

	* [9564dd0] nslcd/pam.c: Implement handling of pam_authc_search

	  This allows performing a different, configurable search from
	  the default BASE search after the BIND operation.

2017-06-14  Arthur de Jong <>

	* [f72aaa2] man/nslcd.conf.5.xml: Document pam_authc_search option

2017-06-14  Arthur de Jong <>

	* [5d11cb8] nslcd/cfg.c, nslcd/cfg.h, nslcd/pam.c: Add
	  pam_authc_search option parsing

2017-06-14  Arthur de Jong <>

	* [bcc3a08] nslcd/pam.c, pynslcd/ Reorganise PAM search
	  var building functions

	  This moves the autzsearch_var_add(), autzsearch_vars_free(),
	  autzsearch_var_get() and do_autzsearches() functions to the top of
	  the file using more generic names and introduces search_vars_new()
	  in prepartion of other similar searches.

	  This also renames the remaining authzsearch functions to
	  authz_search to be consistent with the pam_authz_search option.

2017-06-13  Arthur de Jong <>

	* [ebc0f76] README,, tests/test.ldif: Switch to

2017-06-13  Arthur de Jong <>

	* [be26510] compat/ether.c, compat/ether.h,,
	  nslcd/ether.c, pynslcd/ Query ethernet addresses in
	  compact and long format

	  This ensures that when querying the address 0:18:8a:54:1a:8b
	  both that format and 00:18:8a:54:1a:8b is searched for in LDAP.

	  This was triggerred by the fact that ether_ntoa() on FreeBSD
	  returns the long format while glibc uses the compact format.

	  Since we are no longer using the libc version of ether_ntoa() we
	  can also drop the compatibility implementation of ether_ntoa_r().

2017-06-07  Arthur de Jong <>

	* [becc883] nslcd/passwd.c: Log entries and lookups failing

	  This logs (at debug level) any LDAP uidNumber attribute values
	  (or translated objectSid attribute values) that are lower than
	  nss_min_uid.	It also logs getpwuid() requests for such uids.

2017-06-04  Arthur de Jong <>

	* [5a84be2] utils/, utils/, utils/,
	  utils/, utils/, utils/ Make nslcd-utils
	  Python 3 compatible

	  This changes the getent.ldap and chsh.ldap commands to be
	  compatible with Python 2 and Python 3 with the same code.

	  This does switch to raw I/O because Python 3 does not support
	  bufferred I/O on sockets.

2017-06-04  Arthur de Jong <>

	* [9c803d7] tests/, tests/,
	  tests/, tests/ Add tests for getent.ldap

	  This more or less duplicates the tests from to with some modifications for the differences
	  in output.

	  This also extends the tests to handle the case
	  where shadow lookups do not go through LDAP.

2017-06-04  Arthur de Jong <>

	* [a357131] utils/ Fix output of getent.ldap networks

	  Contrary to the hosts output the network name is listed first.

2017-06-03  Arthur de Jong <>

	* [58c7a94] utils/ Fix IPv6 lookups in getent.ldap

2017-06-03  Arthur de Jong <>

	* [5173e55] man/getent.ldap.1.xml, utils/ Accept multiple
	  key arguments to getent.ldap

	  This allows supplying multiple arguments to getent.ldap that
	  will each act as a search key for lookups, similar to what normal
	  getent allows.

2017-02-07  Arthur de Jong <>

	* [53f797b] nslcd/nslcd.c: Exit with 0 when stopping nslcd

	  When receiving a signal this will result in nslcd returning with
	  a success exit code.

	  Thanks Stanislav Moravec for pointing this out.

2016-09-04  Arthur de Jong <>

	* [c12cd14] nslcd/nslcd.c: Remove duplicate break statement

2016-09-04  Arthur de Jong <>

	* [d8ad7b1] nslcd/myldap.c: Do not try all LDAP servers on failed


2016-08-30  Arthur de Jong <>

	* [a3da150] utils/ Replace Python assertions with exceptions

	  The assertions can be optimised out when compiling the modules
	  with -O which would break the protocol handling. This ensures
	  that errors are properly handled even if optimisation is enabled.

	  Thanks Yu-Chun Huang for reporting this.

2016-08-14  Arthur de Jong <>

	* [c286bb5] AUTHORS, ChangeLog, NEWS, README,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml,
	  nslcd/nslcd.c, pynslcd/, utils/ Get files
	  ready for 0.9.7 release

2016-08-14  Arthur de Jong <>

	* [db9494e] tests/ Only run doctests when building

2016-08-14  Arthur de Jong <>

	* [cb16e4c] nss/bsdnss.c: Avoid some warnings on FreeBSD

	  This adds casts to and from void * for the function pointers
	  that are passed around.

2016-07-27  Arthur de Jong <>

	* [b7a0b23] ChangeLog, ChangeLog-2013, Archive 2013
	  ChangeLog entries

2016-07-27  Arthur de Jong <>

	* [e4df12c] config.guess, config.sub, install-sh: Update files
	  from latest automake

2016-07-27  Arthur de Jong <>

	* [db8034a] man/, utils/, utils/
	  Also use module-name in utilities and man pages

	  This ensures that getent.ldap, chsh.ldap and manual pages with
	  ldap in the name will be installed with the name as specified
	  with --with-module-name.

	  Note that the manual page content still describes the working
	  within nss-pam-ldapd and still mention the ldap name.

2016-06-04  Arthur de Jong <>

	* [281b0ec] tests/ Ensure doctest also run in

	  This fixes to also work when the build directory
	  is different from the source directory. This is needed because is only available in the build directory.

2016-06-03  Arthur de Jong <>

	* [a89eda7] nslcd/pam.c: Also honor ignorecase in PAM

	  This avoids changing the cannonical username to the value as
	  specified in LDAP when ignorecase is used.


2016-06-03  Arthur de Jong <>

	* [7eb1d69] pynslcd/ Support ${var:offset:length} in pynslcd

2016-06-02  Arthur de Jong <>

	* [c90a537] pynslcd/ Fix pynslcd expression representation

	  The problem was that the ExpressionMapping string value did not
	  include the quotes which will cause problems when printing the
	  expression (e.g.  when logging or dumping config, etc.).

2016-06-02  Arthur de Jong <>

	* [fd61bb6] tests/, tests/ Add test
	  for running doctests

2016-05-30  Giovanni Mascellani <>

	* [2ba9560] common/expr.c, man/nslcd.conf.5.xml, tests/test_expr.c:
	  Support substituting expresions of type ${var:offset:length}

2016-05-30  Giovanni Mascellani <>

	* [3a4860c] man/nslcd.conf.5.xml: Fix small typo

2016-05-24  Arthur de Jong <>

	* [917ded7] common/expr.c: Refactor out expression parsing to

	  This moves the parsing of the various ${var...} expressions to
	  separate functions so they can be extended more easily.

2016-02-22  Arthur de Jong <>

	* [4be9c59] pam/pam.c: Fix logic error

	  This could result in a free(NULL) call. This code path can
	  only be triggered if pam_ldap changes the logged-in username
	  (introduced in 6a74d8d).

	  Thanks 依云, see

2016-01-30  Mathieu Baeumler <>

	* [985aec3] nslcd/myldap.c: Display human readable expiry message

	  Display a human readable message (days+hours, or hours+minutes,
	  or seconds) when the password expiring warning is issued.

2016-02-13  Arthur de Jong <>

	* [b795f6c] nslcd/cfg.c: Fix nss_disable_enumeration configuration

	  This fixes a copy-paste bug where nss_disable_enumeration was
	  incorrectly handled. Fixes c0366d8.

	  Thanks Andrew W Elble for pointing this out.

2016-01-18  Arthur de Jong <>

	* [525c996] tests/test.ldif, tests/ Add a few
	  IPv6 tests

	  This adds a few test hosts that have IPv6 addresses. This
	  ensures that we have an IPv6-only host and hosts which have
	  address values in different order in the ipHostNumber attribute
	  (although attribute order is probably not guaranteed).

2015-10-18  Mathieu Baeumler <>

	* [31cd2cf] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h,
	  nslcd/myldap.c: Add pam_authc_ppolicy option

	  This option allows completely disabling ppolicy handling.

2016-01-06  Arthur de Jong <>

	* [117c9cb] nslcd/pam.c: Fix error handling on credential change

	  This fixes setting the correct LDAP error code and also fixes
	  formatting in 027df03.

2015-12-23  Vasilis Tsiligiannis <>

	* [027df03] nslcd/pam.c: Fix updating of 'shadowLastChange'
	  attribute when chasing referrals

	  This fixes a bug where 'shadowLastChange' attribute cannot be
	  updated when chasing a referral. After a password is succesfully
	  changed, the credentials for binding should also be updated with
	  the new password for the session.

	  Signed-off-by: Vasilis Tsiligiannis

2015-11-13  Arthur de Jong <>

	* [fcea92d] nslcd/cfg.c: Correct file readability check

	  This uses access() instead of stat() to see if the file is
	  readable by the current process. This fixes f089e01.

2015-09-20  Arthur de Jong <>

	* [c879485] nslcd/myldap.c: Fail-over and retry on more errors

	  Also try to fail over to another LDAP server on a larger number
	  of errors. Specifically errors that point to problems connecting
	  to the LDAP server.

2015-08-29  Arthur de Jong <>

	* [3d09e28] nslcd/myldap.c: Open connection before do_try_search()

	  This is in preparation for splitting the BIND from the search
	  phase for authentication.

2015-08-27  Arthur de Jong <>

	* [f089e01] nslcd/cfg.c: Loosen up file existence check

	  This changes the check (for configuration options that specify
	  file names) to just check that the specified path is readable
	  instead of ensisting that it points to a file.

	  This allows tls_randfile to point to /dev/urandom (a character
	  device) or a pipe. This fixes 6779a51.

	  This also applies the same check to the krb5_ccname option.

	  Thanks to Patrick McLean for pointing this out.

2015-08-14  Arthur de Jong <>

	* [309f127] pam/pam.c: Have PAM module log messages to syslog

	  This logs informational messages that are presented to the user
	  tot syslog. This normally includes password expiry and grace
	  login information which may be useful to log.

2015-08-14  Arthur de Jong <>

	* [263a443] nslcd/myldap.c: Simplify password policy message handling

	  This simplifies the check for overwriging pending password
	  expiry and grace logins warnigns and updates handling of the
	  LDAP_CONTROL_PWEXPIRING control to be consistent with that of

	  This also corrects the function name, also logs empty password
	  policy responses in debug mode and documents the meaning of the
	  various password policy values.

2015-07-09  Mathieu Baeumler <>

	* [4302901] nslcd/myldap.c: Fix password policy expiration warnings

	  If a password expiration warning (pwdExpireWarning) is set in
	  slapd, and the password is about to expire, slapd sends the
	  timeBeforeExpiration value as part of the passwordPolicyResponse.

	  nslcd would incorrectly instruct the PAM module to require
	  immediate password change. This has been fixed for both
	  timeBeforeExpiration and graceLoginsRemaining.

2015-07-19  Arthur de Jong <>

	* [89b471b] ar-lib,, compile,, depcomp,
	  install-sh, missing, py-compile, test-driver: Update files from
	  automake 1.15

	  This also includes the m4 directory when invoking aclocal because
	  not all versions seem to handle AC_CONFIG_MACRO_DIR.

2015-07-19  Arthur de Jong <>

	* [86a4618] m4/ax_tls.m4: Disable quoting in AX_TLS notfound case

	  This ensures that AS_IF does not generate an empty else clause
	  which will result in an invalid configure script.

2015-07-19  Arthur de Jong <>

	* [6779a51] nslcd/cfg.c: Check file existence for configuration

	  This adds addition checks to the tls_cacertdir, tls_cacertfile,
	  tls_randfile, tls_cert and tls_key options to ensure that they
	  point to an existing file when parsing nslcd.conf.

2015-07-19  Arthur de Jong <>

	* [a6c7c63] pynslcd/ Work around bug in python-daemon


2015-07-08  Arthur de Jong <>

	* [c32e8c0] m4/ax_pthread.m4, m4/ax_tls.m4: Update macros from

2015-06-14  Arthur de Jong <>

	* [d949bd4] AUTHORS, ChangeLog, NEWS,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml:
	  Get files ready for 0.9.6 release

2015-06-14  Arthur de Jong <>

	* [4236dd6] Correctly insert emtpy lines in ChangeLog

2015-06-13  Arthur de Jong <>

	* [e916a2b] man/nslcd.conf.5.xml: Manual page improvements

2015-06-13  Arthur de Jong <>

	* [9a7921f] nslcd/common.c, nslcd/common.h: Also fix signed integer
	  bug in binsid2id()

	  This should have been part of d217632.

2015-06-11  Geoffrey McRae <>

	* [d217632] nslcd/common.c: Fixed signed 32bit overflow bug on
	  32bit systems

2015-05-23  Jed Liu <>

	* [3add5f0] nslcd/cfg.c: Allow configuration values longer than
	  63 characters

2015-03-06  Arthur de Jong <>

	* [d58fba9] nss/netgroup.c: Provide innetgr function on Solaris

	  This implements a function in the Solaris version of the NSS module
	  to check if a specifc netgroup triplet is part of a netgroup.

	  This also avoids a compiler warning and includes improvements
	  and testing by Mark R Bannister.

2015-05-01  Andrew Elble <>

	* [c0366d8] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h,
	  nslcd/nslcd.c, pynslcd/, pynslcd/, pynslcd/,
	  pynslcd/ Implement disable_enumeration

	  If this option is present, functions which cause all user/group
	  entries to be loaded (getpwent(), getgrent()) from the directory
	  will not succeed in doing so. This can dramatically reduce
	  ldap server load in situations where there are a great number
	  of users and/or groups.  Applications that depend on being able
	  to sequentially read all users and/or groups may fail to operate
	  correctly. This option is not recommended for most configurations.

2015-04-17  Arthur de Jong <>

	* [96045d2] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h,
	  nslcd/group.c, pynslcd/, pynslcd/ Implement

	  This option allows skipping group member list retrieval to
	  improve performance with very large groups. This option results
	  in inconsistent group membership information being presented
	  that may confuse some applications.

2015-04-15  Arthur de Jong <>

	* [530cc24] nslcd/daemonize.c, nslcd/nslcd.c: Avoid signal race
	  condition on start-up

	  This only restores the signal mask after signal handlers are in
	  place and the daemon has completely daemonised to avoid a race
	  condition in the start-up phase of nslcd where a signal could
	  be sent to nslcd causing it to quit or fail to write information
	  to the parent process.

2015-03-29  Arthur de Jong <>

	* [16fd8c6] AUTHORS, ChangeLog, NEWS, README,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for
	  0.9.5 release

2015-03-11  Tim Rice <>

	* [ae08830] common/, compat/,,
	  nss/, pam/ Use correct PIC arg for
	  non-GCC compilers

2015-03-22  Arthur de Jong <>

	* [fdbca17] config.sub: Update files from latest automake

2015-03-22  Arthur de Jong <>

	* [9f9a5c5] nss/networks.c: Fix for networks lookup under Solaris

	  This fixes a byte order issue when nscd is running.

2015-03-22  Arthur de Jong <>

	* [52ea3f5] Add checks to configure

	  This adds tests for a function and type used in the code.

2015-03-22  Arthur de Jong <>

	* [4ec1c08] nslcd/daemonize.c: ENODATA is missing on FreeBSD

	  FreeBSD doesn't have ENODATA so we use ENOATTR instead.

2015-03-22  Arthur de Jong <>

	* [b2563b0] compat/nss_compat.h, Remove use of

	  This was a compatibility leftover from the nss_ldap days.

2015-03-21  Arthur de Jong <>

	* [4c5a3c9] tests/test_clock.c: Prevent numer overflow in test_clock

2015-03-21  Arthur de Jong <>

	* [0420232] nslcd/nslcd.c, nslcd/nsswitch.c, nss/,
	  tests/ Various small fixes when using --with-module-name

	  This updates the test framework to support --with-module-name,
	  ensures that is rebuilt when configure is re-ran,
	  fixes parsing of nsswitch.conf (to determine what to return for
	  passwd lookups) and fixes the check for _nss_ldap_version.

2015-03-21  Arthur de Jong <>

	* [788475f] nss/common.h: Also support platforms without TLS

	  This disables the use of thread-local storage in the NSS module
	  when it is not available in libc. This results in the get*ent()
	  functions not being thread-safe. However, on most platforms they
	  are not expected to be thread-safe anyway.

2015-03-20  Dalibor Pospíšil <>

	* [95d621e] man/nslcd.conf.5.xml: Document that multiple URIs can
	  be specified

	  Update nslcd.conf man page that multiple URIs can be set by
	  using more uri lines or more URIs defined on one uri line.

2015-03-11  Patrick McLean <>

	* [fa6affc] common/tio.c, nslcd/attmap.c, nslcd/cfg.c,
	  nslcd/myldap.c: Fix formatting of size_t values

	  In several places the code used a %d format to print a size_t
	  variable.  On amd64 at least size_t is an unsigned long, so use
	  %lu instead.

	  An alternative would be to use %ud for size_t and %zd fo ssize_t
	  but not all platforms seem to support that formatter.

2015-03-11  Patrick McLean <>

	* [246aba5] nslcd/myldap.c, pam/pam.c: Avoid comparison of static
	  array to null pointer

	  There are several places where a static length array in a struct
	  is compared to a null pointer. These comparisons will always
	  be false, since an array in a struct is not actually a pointer,
	  so they can be removed.

2015-03-10  Patrick McLean <>

	* [d0f896a] AUTHORS, nslcd/nslcd.c: Don't let the oom killer
	  kill nslcd

	  Adjust the Linux OOM (Out-Of-Memory) killer score by -1000 for
	  nslcd so that it should not be killed.

2015-01-19  Arthur de Jong <>

	* [ee82d2f] .gitignore,, nslcd/nslcd.c,
	  nss/, nss/aliases.c, nss/bsdnss.c, nss/common.c,
	  nss/common.h, nss/ethers.c, nss/group.c, nss/hosts.c,
	  nss/netgroup.c, nss/networks.c, nss/passwd.c, nss/protocols.c,
	  nss/prototypes.h, nss/rpc.c, nss/services.c, nss/shadow.c,
	  pam/pam.c, pynslcd/, pynslcd/ Allow
	  configuration of NSS and PAM names

	  This introduces the --with-module-name configure option to
	  allow building of NSS and PAM modules with different namespaces
	  than ldap.

2015-01-12  Mark R Bannister <>

	* [ed8b312] nss/hosts.c: Fix uninitialised variable

	  This fixes a bug in the NSS library when encountering IPv6
	  addresses in the hosts map.

2014-12-12  Arthur de Jong <>

	* [8b33057] nslcd/myldap.c: Avoid accessing searches outside array

	  Thanks David Binderma for pointing this out.

	  Note that in practical situations this should not result in any
	  errors due to the position of searches within the ldap_session

2014-11-02  Arthur de Jong <>

	* [9ee854e] man/nslcd.conf.5.xml: Document that rootpwmoddn needs
	  to exist


2014-10-10  Arthur de Jong <>

	* [4262122] nslcd/nslcd.c: Fix format string

	  Thanks Jianhai Luan.

2014-10-04  Arthur de Jong <>

	* [1d3b19b] nslcd/nslcd.c: Block signals sooner to avoid race

2014-08-27  Jason Luan <>

	* [78627c9] nslcd/cfg.c, nslcd/group.c, nslcd/nslcd.c,
	  nslcd/passwd.c: uid_t/gid_t should be formatted as unsigned long

	  mmkfilter_passwd_byuid()/mkfilter_group_bygid() get wrong filter
	  string because "%d" will return negative when uid/gid larger
	  than 2^31, and result to "Authentiction failure".

	  This also changes the other places where uid_t or gid_t values
	  are formatted.

2014-09-21  Arthur de Jong <>

	* [a726d29] nslcd/daemonize.c: Fix issues with daemonising

	  This fixes a problem with a buffer that could end up padded
	  with garbage.

	  This also clarifies the code a bit and adds extra logging for
	  errors that could occur during daemonising.

2014-06-30  Tim Harder <>

	* [82e4423] nslcd/myldap.c: Minor comment spelling fix

2014-06-30  Tim Harder <>

	* [2950797] AUTHORS, nslcd/myldap.c: Check a socket's connectivity
	  before trying to use it

	  This alleviates some cases where multi-second lag occurs before a
	  query returns due to some or all connections having been closed
	  by the peer, e.g. a load balancer timing out old connections,
	  but they are all tried before opening new connections.

	  Tested and working on Linux.

2014-06-20  Arthur de Jong <>

	* [1765e34] nslcd/common.h: Fix copy-pasto

2014-06-12  Arthur de Jong <>

	* [9516479] tests/test.ldif, tests/ Use other IP
	  range for tests

	  This uses IP addresses from the RFC 5737 TEST-NET-1 range that is
	  meant for use in documentation. This avoids issues with running
	  the tests environments that also use the range.

2014-06-06  Arthur de Jong <>

	* [b3cf0aa] AUTHORS, ChangeLog, NEWS,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml:
	  Get files ready for 0.9.4 release

2014-06-06  Arthur de Jong <>

	* [abb2452] nss/services.c: Return correct port number on Solaris

	  This is a small fix for when using nscd (which still does not
	  seem to work completely). The port is stored in network byte
	  order but should be printed in host byte order.

2014-06-06  Arthur de Jong <>

	* [b977d3f] tests/lookup_groupbyuser.c: Add missing include
	  for FreeBSD

2014-06-06  Arthur de Jong <>

	* [258d671] nslcd/pam.c: Fix password modification by root

	  This fixes 15fc13c.

2014-06-06  Arthur de Jong <>

	* [8eeb1cc] common/tio.c: Clear proper buffer length

	  This fixes 3d29861.

2014-06-06  Arthur de Jong <>

	* [3d65b84] nslcd/common.h: Fix code indentation

	  This fixes 2274b41.

2014-06-06  Arthur de Jong <>

	* [e867727] config.guess, config.sub: Update files from latest

2014-06-05  Arthur de Jong <>

	* [f5ee208] pynslcd/ Fix comment

2014-06-05  Arthur de Jong <>

	* [13483f9] .gitignore,, tests/,
	  tests/lookup_groupbyuser.c: Introduce lookup_groupbyuser test

	  This command can be used to perform a lookup using getgrouplist()
	  to present a list of returned numeric group ids. This can be
	  used to avoid the additional lookups that are done with the id
	  and groups commands.

2014-05-14  Arthur de Jong <>

	* [3d29861] common/tio.c, nslcd/myldap.c, nslcd/pam.c: Clear
	  buffers before free-ing

	  This clears most buffers that may hold credentials at one point
	  before free()ing the memory.

2014-05-08  Arthur de Jong <>

	* [aa1d810] HACKING: Clarify code contribution

2014-05-04  Arthur de Jong <>

	* [94eacb5] nslcd/pam.c: Improve error logging of user login failures

2014-05-04  Arthur de Jong <>

	* [ca36a50] nslcd/myldap.c: Also extract policy controls on
	  BIND failure

	  This ensures that controls returned by an LDAP server as part of
	  a failed BIND operation are also returned. This makes it possible
	  to distinguish between a wrong password and an expired password.

	  This also only logs the BIND operation result on DEBUG level
	  (the error is logged later on).

2014-05-04  Arthur de Jong <>

	* [d6163e2] Use FreeBSD lib directory and SONAME
	  on Dragonfly

2014-05-04  Arthur de Jong <>

	* [f6f3730] README, man/nslcd.conf.5.xml: Small documentation

	  This includes a number of minor changes to the documentation. This
	  also documents the children search scope (related to 2caeef4).

2014-05-04  Arthur de Jong <>

	* [ed79110] nslcd/daemonize.c, nslcd/nslcd.c: Log daemonising

	  This also clears errno in the main function to ensure that no
	  incorrect errno value is logged on errors.

2014-05-04  Arthur de Jong <>

	* [18d05b0] .gitignore, tests/, tests/test_attmap.c:
	  Add a test for setting member attribute mapping

2014-05-04  Arthur de Jong <>

	* [fbea2a5] nslcd/attmap.c: Fix mapping group member attribute to
	  empty string

	  This fixes be94912.

2014-05-04  Arthur de Jong <>

	* [2274b41] nslcd/alias.c, nslcd/attmap.c, nslcd/cfg.c,
	  nslcd/common.h, nslcd/ether.c, nslcd/group.c, nslcd/host.c,
	  nslcd/invalidator.c, nslcd/myldap.c, nslcd/netgroup.c,
	  nslcd/network.c, nslcd/pam.c, nslcd/passwd.c, nslcd/protocol.c,
	  nslcd/rpc.c, nslcd/service.c, nslcd/shadow.c: Make buffer size
	  error logging consistent

	  This adds logging of most cases where a defined buffer is not
	  large enough to hold provided data on error log level.

2014-05-04  Arthur de Jong <>

	* [15fc13c] nslcd/myldap.c, nslcd/myldap.h, nslcd/pam.c,
	  nslcd/usermod.c: Warn when binddn buffer is too small

2014-05-04  Arthur de Jong <>

	* [f987891] nslcd/common.h: Grow DN buffer size

	  The buffer size seems to be a problem in environments with long
	  names or environments with non-ASCII characters.

2014-05-02  ushi <>

	* [119cebf] nslcd/common.h: Use larger nslcd password buffer

	  I had some edge cases where 64 bytes were not enough. People
	  are using password managers with long generated passwords. I
	  increased the buffer size to 128.

2014-03-12  Arthur de Jong <>

	* [8f12c15] AUTHORS, ChangeLog, NEWS,,
	  man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml,
	  man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml,
	  pynslcd/ Get files ready for 0.9.3 release

2014-03-12  Arthur de Jong <>

	* [1ec7739] INSTALL, missing, test-driver: Update files from
	  recent automake

2014-03-10  Arthur de Jong <>

	* [44764f0] tests/, tests/,
	  tests/ Run the correct executables for the tests

	  This fixes issues with running the tests when using a separate
	  build directory (fixes ef0eddaa).

2014-03-10  Arthur de Jong <>

	* [77444ac] tests/ Fix nslcd-test.conf permissions
	  for test

	  This ensures that configuration file is not world readable when
	  the tests are run. This avoids test failure for the use of the
	  rootpwmodpw option.

2014-03-10  Arthur de Jong <>

	* [96e4171] common/nslcd-prot.h: Interpret transferred integers
	  as signed again

	  This fixes an issue with unsigned values ending up in signed
	  fields and missing sign extension.


2014-01-27  Nalin Dahyabhai <>

	* [2d35feb] nss/hosts.c, nss/networks.c: Use right h_errnop for
	  retrying with larger buffer

	  The libc nsswitch code expects h_errno to be set to NETDB_INTERNAL
	  when it needs to try again with a larger buffer.

	  Signed-off-by: Lukas Slebodnik <>

2014-01-27  Lukas Slebodnik <>

	* [8532f40] nss/hosts.c, nss/networks.c: Fix crash when retrieving
	  large networks entries

	  If NSS_STATUS_TRYAGAIN is returned from read_one_hostent or
	  read_one_netent then fp will be closed and function tio_skipall
	  will be called with NULL pointer.  It could happend in functions:
	      _nss_ldap_getnetbyname_r _nss_ldap_getnetbyaddr_r
	      _nss_ldap_gethostbyname2_r _nss_ldap_gethostbyaddr_r

	  Fixes r548 (aka afd5d9b).

2014-01-30  Davy Defaud <>

	* [4211961] nslcd/group.c: Support builtin Windows groups

	  This maps the gid (gidNumber) to an AD SID for builtin
	  groups when searching a group by gid (RID) between 544 and
	  552. In that case the SID prefix is not the domain's prefix
	  (S-1-5-21-dddddd-dddddd-dddddd) but the BUILTIN SID prefix

	  For example, if you add a user to the Administrators builtin
	  group (S-1-5-32-544), now you should be able to get this group
	  through nslcd, instead of receiving an error message.

2014-01-25  Arthur de Jong <>

	* [f6a0675] Add test for krb5 thread safety

	  This adds a test that checks the return value of
	  krb5_is_thread_safe() to see if krb5 is thread safe (during build)
	  and issues a warning if it is not.

	  nslcd does not directly link to krb5 but the library may be
	  loaded (by GSSAPI) if Kerberos is used to authenticate nslcd to
	  the LDAP server.

2014-01-25  Francois Tigeot <>

	* [043838c] Also detect DragonFly as BSD

	  This fixes the detection of DragonFly as requiring the freebsd
	  NSS interface flavour.

2014-01-24  joshuashire <>

	* [2181cca] nslcd/shadow.c: Update shadow.c to resolve pwdLastSet

	  We read the date into the buffer to the specified length to get it
	  to the Unix time (i.e. seconds) from its AD value of nanoseconds,
	  then convert it to days for shadow. If we use date rather than
	  buffer we end up trying to convert the original nanosecond value.

2014-01-05  Arthur de Jong <>

	* [c6c317e] : Implement deref control handling

	  This uses the LDAP_CONTROL_X_DEREF control as described in
	  draft-masarati-ldap-deref-00 to request the LDAP server to
	  dereference group member attribute values to uid attribute values.

	  This should reduce the number of searches that are required for
	  expanding group members that use the member attribute.

	  This mechanism could also be used to extract information on
	  nested groups but the gains are less clear there.

	  Not all LDAP servers support this control. In OpenLDAP, load the
	  (currently undocumented) deref overlay and enable it for the
	  database to take advantage of this improvement.

	  There is a functional difference when using this control. Any
	  returned deferred uid value returned by the LDAP server is accepted
	  as a member.	No checks are performed to see if the user matches
	  the search base and search filters set for passwd entries.

2014-01-05  Arthur de Jong <>

	* [309b4bb] README: Update documentation

	  This documents the way the deref controls are used.

2014-01-05  Arthur de Jong <>

	* [cecc024] nslcd/group.c: Use myldap_get_deref_values() to get
	  member uids

	  This uses information from the deref control (if available)
	  to get the username for each of the members of the group. Any
	  missing deref member attribute values will be seen as nested
	  groups and will be traversed if nested group support is enabled.

2014-01-05  Arthur de Jong <>

	* [c973834], nslcd/myldap.c, nslcd/myldap.h: Provide
	  a myldap_get_deref_values() function

	  This function looks for deref response controls
	  (LDAP_CONTROL_X_DEREF) in the entry and returns the information
	  from the dereferenced attribute in two lists: dereferenced values
	  and attribute values that could not be dereferenced.

2014-01-05  Arthur de Jong <>

	* [3992e15] nslcd/group.c: Skip member attributes in bymember search

	  This changes the group by member searches to not request the
	  member attributes. This will speed up result parsing by a fraction
	  because less data is transferred but will also cause the deref
	  control not to be added to these searches.

2013-12-28  Arthur de Jong <>

	* [15ee2fc] compat/, compat/derefctrl.c,
	  compat/ldap_compat.h, Provide replacement

	  This adds a test for a bug in OpenLDAP that allocated a

2014-01-05  Arthur de Jong <>

	* [547e479], nslcd/myldap.c: Request attribute deref
	  via search control

	  This uses the LDAP_CONTROL_X_DEREF control as descibed in
	  draft-masarati-ldap-deref-00 to request the LDAP server to
	  dereference member attribute values to uid attribute values in
	  order to avoid doing extra searches.

	  This control is currently only added for group search by looking
	  for the member attribute in the search.

2014-01-04  Arthur de Jong <>

	* [c22eb08] nslcd/myldap.c: Rename entry property to indicate
	  storage type

	  This changes entrye->rangedattributevalues to entry->buffers
	  because the propery is not only used for ranged attribute values
	  but for anything that can be freed with free().

2014-01-03  Arthur de Jong <>

	* [f009c96] nslcd/myldap.c: Ignore missing page controls

	  Since we could get arbitrray controls and are only interested
	  in page controls we ignore failures to find page controls.

2014-01-03  Arthur de Jong <>

	* [4f6dfdd] nslcd/myldap.c: Use do_try_search() also for paged

	  This also changes do_try_search() to support building continued
	  paged controls and lays the groundwork for adding more search

2014-01-05  Arthur de Jong <>

	* [be94912] nslcd/attmap.c, nslcd/group.c, pynslcd/
	  Support blanking the member attribute

	  This allows remapping the member attribute to an empty string
	  which removes support for that attribute. This can reduce the
	  number of search operations if the attribute is not used.

2014-01-05  Arthur de Jong <>

	* [0d3fa5d] nslcd/group.c: Fix typo

2014-01-05  Arthur de Jong <>

	* [8e74848] nslcd/group.c, nss/netgroup.c, tests/test_set.c:
	  Fix memory leaks related to set_pop()

	  Some pieces of code did not properly free() the value returned
	  by set_pop().

	  The leak in group code was related to the introduction of nested
	  group functionality in 41ba574 (merged in 3daa68d) so should
	  only be present in releases 0.9.0 forward.

	  The leak in the netgroup code only ended up in the Solaris
	  version of the NSS module and was introduced in 4ea9ad1 (merged in
	  5c8779d). This leak is present in all releases from 0.8.0 forward.

2014-01-04  Arthur de Jong <>

	* [3288942] tests/test_myldap.c: Fix compiler warnings in the
	  myldap test

2014-01-02  Arthur de Jong <>

	* [2b8fbc2] : Only exit nslcd when daemon is ready

	  This removes a race condition between the exit of the initial
	  nslcd process (as started by the init script) and nslcd services
	  being ready.

2014-01-02  Arthur de Jong <>

	* [3afedc4] compat/, compat/daemon.c, compat/daemon.h, Remove daemon() replacement function

2014-01-02  Arthur de Jong <>

	* [907d49d], nslcd/daemonize.c: Close daemon pipe
	  file descriptor on fork or exec

	  This tries to avoid child processes ending up with a copy of
	  the pipe file descriptor that is used to signal readiness of
	  the daemon.

2014-01-02  Arthur de Jong <>

	* [42a1a3d] nslcd/, nslcd/daemonize.c, nslcd/daemonize.h,
	  nslcd/nslcd.c: Properly daemonise nslcd and only exit when ready

	  This introduces a new daemonize module that provides functions for
	  closing all file descriptors, redirecting stdin/stdout/stderr to
	  /dev/null and a function for backgrounding an application while
	  only exiting the original process after the daemon process has
	  indicated readiness.

	  This is used to exit the original process only after the listening
	  socket has been set up and the worker threads have been started.