diff options
Diffstat (limited to 'source3/libads')
-rw-r--r-- | source3/libads/ads_struct.c | 1 | ||||
-rw-r--r-- | source3/libads/ldap.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c index d8676d050d..9b2179ad31 100644 --- a/source3/libads/ads_struct.c +++ b/source3/libads/ads_struct.c @@ -139,6 +139,7 @@ void ads_destroy(ADS_STRUCT **ads) SAFE_FREE((*ads)->schema.sfu_gidnumber_attr); SAFE_FREE((*ads)->schema.sfu_shell_attr); SAFE_FREE((*ads)->schema.sfu_homedir_attr); + SAFE_FREE((*ads)->schema.sfu_gecos_attr); ZERO_STRUCTP(*ads); diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 6d2155fae0..cb7dbc575b 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -2628,7 +2628,7 @@ BOOL ads_check_sfu_mapping(ADS_STRUCT *ads) { BOOL ret = False; TALLOC_CTX *ctx = NULL; - const char *gidnumber, *uidnumber, *homedir, *shell; + const char *gidnumber, *uidnumber, *homedir, *shell, *gecos; ctx = talloc_init("ads_check_sfu_mapping"); if (ctx == NULL) @@ -2654,6 +2654,11 @@ BOOL ads_check_sfu_mapping(ADS_STRUCT *ads) goto done; ads->schema.sfu_shell_attr = SMB_STRDUP(shell); + gecos = ads_get_attrname_by_oid(ads, ctx, ADS_ATTR_SFU_GECOS_OID); + if (gecos == NULL) + goto done; + ads->schema.sfu_gecos_attr = SMB_STRDUP(gecos); + ret = True; done: if (ctx) |