diff options
Diffstat (limited to 'source3/libads/kerberos_verify.c')
-rw-r--r-- | source3/libads/kerberos_verify.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/source3/libads/kerberos_verify.c b/source3/libads/kerberos_verify.c index c667181642..de3fdeb9de 100644 --- a/source3/libads/kerberos_verify.c +++ b/source3/libads/kerberos_verify.c @@ -69,13 +69,27 @@ static bool ads_keytab_verify_ticket(krb5_context context, my_fqdn[0] = '\0'; name_to_fqdn(my_fqdn, global_myname()); - asprintf(&valid_princ_formats[0], "%s$@%s", my_name, lp_realm()); - asprintf(&valid_princ_formats[1], "host/%s@%s", my_name, lp_realm()); - asprintf(&valid_princ_formats[2], "host/%s@%s", my_fqdn, lp_realm()); - asprintf(&valid_princ_formats[3], "host/%s.%s@%s", my_name, lp_realm(), lp_realm()); - asprintf(&valid_princ_formats[4], "cifs/%s@%s", my_name, lp_realm()); - asprintf(&valid_princ_formats[5], "cifs/%s@%s", my_fqdn, lp_realm()); - asprintf(&valid_princ_formats[6], "cifs/%s.%s@%s", my_name, lp_realm(), lp_realm()); + if (asprintf(&valid_princ_formats[0], "%s$@%s", my_name, lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[1], "host/%s@%s", my_name, lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[2], "host/%s@%s", my_fqdn, lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[3], "host/%s.%s@%s", my_name, lp_realm(), lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[4], "cifs/%s@%s", my_name, lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[5], "cifs/%s@%s", my_fqdn, lp_realm()) == -1) { + goto out; + } + if (asprintf(&valid_princ_formats[6], "cifs/%s.%s@%s", my_name, lp_realm(), lp_realm()) == -1) { + goto out; + } ZERO_STRUCT(kt_entry); ZERO_STRUCT(kt_cursor); @@ -375,8 +389,7 @@ NTSTATUS ads_verify_ticket(TALLOC_CTX *mem_ctx, krb5_auth_con_setflags( context, auth_context, flags ); } - asprintf(&host_princ_s, "%s$", global_myname()); - if (!host_princ_s) { + if (asprintf(&host_princ_s, "%s$", global_myname()) == -1) { goto out; } |