svn commit: samba r10382 - in
branches/SAMBA_4_0/source/heimdal/lib/krb5: .
abartlet at samba.org
abartlet at samba.org
Wed Sep 21 10:17:56 GMT 2005
Author: abartlet
Date: 2005-09-21 10:17:56 +0000 (Wed, 21 Sep 2005)
New Revision: 10382
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10382
Log:
In the absence of client support for the full KDC-side
canonicalisation code, I've hacked Heimdal to use the default realm if
no other realm can be determined for a given host.
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/heimdal/lib/krb5/get_host_realm.c
Changeset:
Modified: branches/SAMBA_4_0/source/heimdal/lib/krb5/get_host_realm.c
===================================================================
--- branches/SAMBA_4_0/source/heimdal/lib/krb5/get_host_realm.c 2005-09-21 09:27:17 UTC (rev 10381)
+++ branches/SAMBA_4_0/source/heimdal/lib/krb5/get_host_realm.c 2005-09-21 10:17:56 UTC (rev 10382)
@@ -187,27 +187,40 @@
return 0;
}
}
+
+ *realms = malloc(2 * sizeof(krb5_realm));
+ if (*realms == NULL) {
+ krb5_set_error_string(context, "malloc: out of memory");
+ return ENOMEM;
+ }
+
+ (*realms)[1] = NULL;
+
p = strchr(host, '.');
if(p != NULL) {
p++;
- *realms = malloc(2 * sizeof(krb5_realm));
- if (*realms == NULL) {
+ (*realms)[0] = strdup(p);
+ if((*realms)[0] == NULL) {
+ free(*realms);
krb5_set_error_string(context, "malloc: out of memory");
return ENOMEM;
}
-
- (*realms)[0] = strdup(p);
- if((*realms)[0] == NULL) {
+ strupr((*realms)[0]);
+ } else {
+ krb5_error_code ret;
+ ret = krb5_get_default_realm(context, &(*realms)[0]);
+ if(ret) {
free(*realms);
krb5_set_error_string(context, "malloc: out of memory");
return ENOMEM;
}
- strupr((*realms)[0]);
- (*realms)[1] = NULL;
- return 0;
+ if((*realms)[0] == NULL) {
+ free(*realms);
+ krb5_set_error_string(context, "unable to find realm of host %s", host);
+ return KRB5_ERR_HOST_REALM_UNKNOWN;
+ }
}
- krb5_set_error_string(context, "unable to find realm of host %s", host);
- return KRB5_ERR_HOST_REALM_UNKNOWN;
+ return 0;
}
/*
More information about the samba-cvs
mailing list