From: Andreas Schneider Date: Tue, 8 Mar 2016 16:07:23 +0000 (+0100) Subject: krb5_wrap: Add smb_krb5_open_keytab_relative() function X-Git-Tag: tdb-1.3.9~406 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2f5c30bea372182578055a7bd50ee8076946ef3;p=thirdparty%2Fsamba.git krb5_wrap: Add smb_krb5_open_keytab_relative() function Signed-off-by: Andreas Schneider Reviewed-by: Stefan Metzmacher --- diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c index 7cf62436b87..9d2f6982524 100644 --- a/lib/krb5_wrap/krb5_samba.c +++ b/lib/krb5_wrap/krb5_samba.c @@ -1301,10 +1301,10 @@ krb5_error_code smb_krb5_enctype_to_string(krb5_context context, #define MAX_KEYTAB_NAME_LEN 1100 #endif -krb5_error_code smb_krb5_open_keytab(krb5_context context, - const char *keytab_name_req, - bool write_access, - krb5_keytab *keytab) +krb5_error_code smb_krb5_open_keytab_relative(krb5_context context, + const char *keytab_name_req, + bool write_access, + krb5_keytab *keytab) { krb5_error_code ret = 0; TALLOC_CTX *mem_ctx; @@ -1343,11 +1343,6 @@ krb5_error_code smb_krb5_open_keytab(krb5_context context, goto resolve; } - if (keytab_name_req[0] != '/') { - ret = KRB5_KT_BADNAME; - goto out; - } - tmp = talloc_asprintf(mem_ctx, "%s:%s", pragma, keytab_name_req); if (!tmp) { ret = ENOMEM; @@ -1426,6 +1421,23 @@ krb5_error_code smb_krb5_open_keytab(krb5_context context, return ret; } +krb5_error_code smb_krb5_open_keytab(krb5_context context, + const char *keytab_name_req, + bool write_access, + krb5_keytab *keytab) +{ + if (keytab_name_req != NULL) { + if (keytab_name_req[0] != '/') { + return KRB5_KT_BADNAME; + } + } + + return smb_krb5_open_keytab_relative(context, + keytab_name_req, + write_access, + keytab); +} + krb5_error_code smb_krb5_keytab_name(TALLOC_CTX *mem_ctx, krb5_context context, krb5_keytab keytab, diff --git a/lib/krb5_wrap/krb5_samba.h b/lib/krb5_wrap/krb5_samba.h index a6079d3b4fc..f198d72ffb2 100644 --- a/lib/krb5_wrap/krb5_samba.h +++ b/lib/krb5_wrap/krb5_samba.h @@ -178,6 +178,10 @@ krb5_enctype smb_get_enctype_from_kt_entry(krb5_keytab_entry *kt_entry); krb5_error_code smb_krb5_enctype_to_string(krb5_context context, krb5_enctype enctype, char **etype_s); +krb5_error_code smb_krb5_open_keytab_relative(krb5_context context, + const char *keytab_name_req, + bool write_access, + krb5_keytab *keytab); krb5_error_code smb_krb5_open_keytab(krb5_context context, const char *keytab_name, bool write_access,