~ubuntu-branches/ubuntu/precise/nss-pam-ldapd/precise-security

« back to all changes in this revision

Viewing changes to compat/ldap_passwd_s.c

  • Committer: Package Import Robot
  • Author(s): Arthur de Jong
  • Date: 2011-09-04 21:00:00 UTC
  • mfrom: (14.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20110904210000-pe3u91iga88vtr16
Tags: 0.8.4
* Upload to unstable
* switch to using the member attribute by default instead of
  uniqueMember (backwards incompatible change)
* only return "x" as a password hash when the object has the shadowAccount
  objectClass and nsswitch.conf is configured to do shadow lookups using
  LDAP (this avoids some problems with pam_unix)
* fix problem with partial attribute name matches in DN (thanks Timothy
  White)
* fix a problem with objectSid mappings with recent versions of OpenLDAP
  (patch by Wesley Mason)
* set the socket timeout in a connection callback to avoid timeout
  issues during the SSL handshake (patch by Stefan Völkel)
* check for unknown variables in pam_authz_search
* only check password expiration when authenticating, only check account
  expiration when doing authorisation
* make buffer sizes consistent and grow all buffers holding string
  representations of numbers to be able to hold 64-bit numbers
* update AX_PTHREAD from autoconf-archive
* support querying DNS SRV records from a different domain than the current
  one (based on a patch by James M. Leddy)
* fix a problem with uninitialised memory while parsing the tls_ciphers
  option (closes: #638872) (but doesn't work yet due to #640384)
* implement bounds checking of numeric values read from LDAP (patch by
  Jakub Hrozek)
* correctly support large uid and gid values from LDAP (patch by Jakub
  Hrozek)
* improvements to the configure script (patch by Jakub Hrozek)
* switch to dh for debian/rules and bump debhelper compatibility to 8
* build Debian packages with multiarch support
* ship shlibs (but still no symbol files) for libnss-ldapd since that was
  the easiest way to support multiarch
* fix output in init script when restarting nslcd (closes: #637132)
* correctly handle leading and trailing spaces in preseeded debconf uri
  option (patch by Andreas B. Mundt) (closes: #637863)
* support spaces around database names in /etc/nsswitch.conf while
  configuring package (closes: #640185)
* updated Russian debconf translation by Yuri Kozlov (closes: #637751)
* updated French debconf translation by Christian Perrier (closes: #637756)
* added Slovak debconf translation by Slavko (closes: #637759)
* updated Danish debconf translation by Joe Hansen (closes :#637763)
* updated Brazilian Portuguese debconf translation by Denis Doria
* updated Portuguese debconf translation by Américo Monteiro
* updated Japanese debconf translation by Kenshi Muto (closes: #638195)
* updated Czech debconf translation by Miroslav Kure (closes: #639026)
* updated German debconf translation by Chris Leick (closes: #639107)
* updated Spanish debconf translation by Francisco Javier Cuadrado
  (closes: #639236)
* updated Dutch debconf translation by Arthur de Jong with help from Paul
  Gevers and Jeroen Schot

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
   (taken from _update_authtok() in pam_ldap.c).
5
5
 
6
6
   Copyright (C) 1998-2004 Luke Howard
7
 
   Copyright (C) 2009 Arthur de Jong
 
7
   Copyright (C) 2009, 2010 Arthur de Jong
8
8
 
9
9
   This library is free software; you can redistribute it and/or
10
10
   modify it under the terms of the GNU Lesser General Public
29
29
#include <ldap.h>
30
30
 
31
31
#include "compat/ldap_compat.h"
32
 
#include "nslcd/log.h"
 
32
#include "compat/attrs.h"
33
33
 
34
34
#ifndef LDAP_EXOP_MODIFY_PASSWD
35
35
#ifdef LDAP_EXOP_X_MODIFY_PASSWD
53
53
#define ber_memfree free
54
54
#endif /* not HAVE_BER_MEMFREE */
55
55
 
 
56
#if !HAVE_DECL_LDAP_EXTENDED_OPERATION_S
56
57
/* we define this ourselves here because some LDAP header versions don't
57
58
   seem to define this */
58
 
int ldap_extended_operation_s(LDAP *ld,LDAP_CONST char *reqoid,
 
59
extern int ldap_extended_operation_s(LDAP *ld,LDAP_CONST char *reqoid,
59
60
    struct berval *reqdata,LDAPControl **serverctrls,LDAPControl **clientctrls,
60
61
    char **retoidp,struct berval **retdatap);
 
62
#endif /* not HAVE_DECL_LDAP_EXTENDED_OPERATION_S */
61
63
 
62
64
/* Replacement for password modification. user is the DN of the entry to
63
65
   change, oldpw is the old password (may not always be needed?), newpw is
64
66
   the new password to set and newpasswd is sometimes returned (though not
65
67
   by us). See RFC 3062 for details.*/
66
68
int ldap_passwd_s(LDAP *ld,struct berval *user,struct berval *oldpw,
67
 
                  struct berval *newpw,struct berval *newpasswd,
 
69
                  struct berval *newpw,struct berval UNUSED(*newpasswd),
68
70
                  LDAPControl **sctrls,LDAPControl **cctrls)
69
71
{
70
72
#ifndef HAVE_LDAP_EXTENDED_OPERATION_S