diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/passdb/pdb_interface.c | 22 | ||||
-rw-r--r-- | source3/passdb/pdb_ldap.c | 7 |
2 files changed, 18 insertions, 11 deletions
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index 5a79f09db0..b13644bac3 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -179,20 +179,26 @@ static struct pdb_methods *pdb_get_methods_reload( bool reload ) pdb->free_private_data( &(pdb->private_data) ); if ( !NT_STATUS_IS_OK( make_pdb_method_name( &pdb, lp_passdb_backend() ) ) ) { char *msg = NULL; - asprintf(&msg, "pdb_get_methods_reload: " - "failed to get pdb methods for backend %s\n", - lp_passdb_backend()); - smb_panic(msg); + if (asprintf(&msg, "pdb_get_methods_reload: " + "failed to get pdb methods for backend %s\n", + lp_passdb_backend()) > 0) { + smb_panic(msg); + } else { + smb_panic("pdb_get_methods_reload"); + } } } if ( !pdb ) { if ( !NT_STATUS_IS_OK( make_pdb_method_name( &pdb, lp_passdb_backend() ) ) ) { char *msg = NULL; - asprintf(&msg, "pdb_get_methods_reload: " - "failed to get pdb methods for backend %s\n", - lp_passdb_backend()); - smb_panic(msg); + if (asprintf(&msg, "pdb_get_methods_reload: " + "failed to get pdb methods for backend %s\n", + lp_passdb_backend()) > 0) { + smb_panic(msg); + } else { + smb_panic("pdb_get_methods_reload"); + } } } diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index 95e9a01ba3..f031483ea1 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -4184,9 +4184,10 @@ static char *get_ldap_filter(TALLOC_CTX *mem_ctx, const char *username) char *escaped = NULL; char *result = NULL; - asprintf(&filter, "(&%s(objectclass=%s))", - "(uid=%u)", LDAP_OBJ_SAMBASAMACCOUNT); - if (filter == NULL) goto done; + if (asprintf(&filter, "(&%s(objectclass=%s))", + "(uid=%u)", LDAP_OBJ_SAMBASAMACCOUNT) < 0) { + goto done; + } escaped = escape_ldap_string_alloc(username); if (escaped == NULL) goto done; |