diff options
author | Jim McDonough <jmcd@samba.org> | 2004-03-11 18:10:08 +0000 |
---|---|---|
committer | Jim McDonough <jmcd@samba.org> | 2004-03-11 18:10:08 +0000 |
commit | 77b180d401b1f431dd550a8498b83bdb24cd7325 (patch) | |
tree | 01bf5a600170ce78619bad131b481e6472b8c2d9 /source3/lib/smbldap.c | |
parent | 686fcfa61e5e7f0bc6adaa6dc0af2a269c5592a8 (diff) | |
download | samba-77b180d401b1f431dd550a8498b83bdb24cd7325.tar.gz samba-77b180d401b1f431dd550a8498b83bdb24cd7325.tar.bz2 samba-77b180d401b1f431dd550a8498b83bdb24cd7325.zip |
Merge from 3.0. Fix munged dial in pdb_ldap
(This used to be commit 46544e957f00f71e3a49e3d90cd88b4cf1b33408)
Diffstat (limited to 'source3/lib/smbldap.c')
-rw-r--r-- | source3/lib/smbldap.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c index 3bd8b12f2d..1c3829c1ef 100644 --- a/source3/lib/smbldap.c +++ b/source3/lib/smbldap.c @@ -290,7 +290,8 @@ static BOOL fetch_ldap_pw(char **dn, char** pw) ******************************************************************/ BOOL smbldap_get_single_attribute (LDAP * ldap_struct, LDAPMessage * entry, - const char *attribute, pstring value) + const char *attribute, char *value, + int max_len) { char **values; @@ -305,7 +306,7 @@ static BOOL fetch_ldap_pw(char **dn, char** pw) return False; } - if (convert_string(CH_UTF8, CH_UNIX,values[0], -1, value, sizeof(pstring)) == (size_t)-1) { + if (convert_string(CH_UTF8, CH_UNIX,values[0], -1, value, max_len) == (size_t)-1) { DEBUG(1, ("smbldap_get_single_attribute: string conversion of [%s] = [%s] failed!\n", attribute, values[0])); ldap_value_free(values); @@ -319,6 +320,14 @@ static BOOL fetch_ldap_pw(char **dn, char** pw) return True; } + BOOL smbldap_get_single_pstring (LDAP * ldap_struct, LDAPMessage * entry, + const char *attribute, pstring value) +{ + return smbldap_get_single_attribute(ldap_struct, entry, + attribute, value, + sizeof(pstring)); +} + /************************************************************************ Routine to manage the LDAPMod structure array manage memory used by the array, by each struct, and values @@ -415,11 +424,11 @@ static BOOL fetch_ldap_pw(char **dn, char** pw) LDAPMod ***mods, const char *attribute, const char *newval) { - pstring oldval; + char oldval[2048]; /* current largest allowed value is mungeddial */ BOOL existed; if (existing != NULL) { - existed = smbldap_get_single_attribute(ldap_struct, existing, attribute, oldval); + existed = smbldap_get_single_attribute(ldap_struct, existing, attribute, oldval, sizeof(oldval)); } else { existed = False; *oldval = '\0'; |