The Samba-Bugzilla – Attachment 6925 Details for
Bug 8374
cifs.upcall does not support MIT Kerberos cross-realm
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch implementing multi realm support to cifs.upcall
cifs-upcall-realms.diff (text/plain), 1.93 KB, created by
Anton Altaparmakov
on 2011-09-21 14:03:47 UTC
(
hide
)
Description:
Patch implementing multi realm support to cifs.upcall
Filename:
MIME Type:
Creator:
Anton Altaparmakov
Created:
2011-09-21 14:03:47 UTC
Size:
1.93 KB
patch
obsolete
>--- cifs-utils-5.0.orig/cifs.upcall.c 2011-06-01 20:41:44.000000000 +0100 >+++ cifs-utils-5.0/cifs.upcall.c 2011-09-21 15:00:58.000000000 +0100 >@@ -327,6 +327,7 @@ static int > cifs_krb5_get_req(const char *principal, const char *ccname, > DATA_BLOB * mechtoken, DATA_BLOB * sess_key) > { >+ char *qualified_principal; > krb5_error_code ret; > krb5_keyblock *tokb; > krb5_context context; >@@ -360,7 +361,44 @@ cifs_krb5_get_req(const char *principal, > goto out_free_ccache; > } > >- ret = krb5_parse_name(context, principal, &in_creds.server); >+ qualified_principal = (char*)principal; >+ if (!strchr(principal, '@')) { >+ char **realms, *realm; >+ >+ ret = krb5_get_host_realm(context, principal, &realms); >+ if (ret) { >+ syslog(LOG_DEBUG, "%s: unable to get host realm (%s).", >+ __func__, principal); >+ goto out_free_principal; >+ } >+ if (realms && (realm = *realms)) { >+ int principal_len, realm_len, qualified_len; >+ >+ syslog(LOG_DEBUG, "%s: got realm %s for principal %s", >+ __func__, realm, principal); >+ principal_len = strlen(principal); >+ realm_len = strlen(realm); >+ qualified_len = principal_len + 1 + realm_len + 1; >+ qualified_principal = calloc(sizeof(char), >+ qualified_len); >+ if (!qualified_principal) { >+ krb5_free_host_realm(context, realms); >+ goto out_free_principal; >+ } >+ strlcpy(qualified_principal, principal, qualified_len); >+ strlcpy(qualified_principal + principal_len, "@", >+ qualified_len - principal_len); >+ strlcpy(qualified_principal + principal_len + 1, realm, >+ qualified_len - principal_len - 1); >+ syslog(LOG_DEBUG, "%s: qualified principal is %s", >+ __func__, qualified_principal); >+ } >+ krb5_free_host_realm(context, realms); >+ } >+ >+ ret = krb5_parse_name(context, qualified_principal, &in_creds.server); >+ if (qualified_principal != principal) >+ free(qualified_principal); > if (ret) { > syslog(LOG_DEBUG, "%s: unable to parse principal (%s).", > __func__, principal);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 8374
: 6925