summaryrefslogtreecommitdiff
path: root/source4/heimdal/lib/krb5/set_default_realm.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/heimdal/lib/krb5/set_default_realm.c')
-rw-r--r--source4/heimdal/lib/krb5/set_default_realm.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source4/heimdal/lib/krb5/set_default_realm.c b/source4/heimdal/lib/krb5/set_default_realm.c
index 965883309c..fd57b6fe67 100644
--- a/source4/heimdal/lib/krb5/set_default_realm.c
+++ b/source4/heimdal/lib/krb5/set_default_realm.c
@@ -77,8 +77,19 @@ krb5_set_default_realm(krb5_context context,
"libdefaults",
"default_realm",
NULL);
- if (realms == NULL)
- ret = krb5_get_host_realm(context, NULL, &realms);
+ if (realms == NULL) {
+ char hostname[MAXHOSTNAMELEN];
+ if (gethostname (hostname, sizeof(hostname))) {
+ return errno;
+ }
+
+ if (strchr(hostname, '.') == NULL) {
+ /* There is no way we can get this mapping, as we can't do DNS */
+ return KRB5_CONFIG_NODEFREALM;
+ }
+ ret = krb5_get_host_realm(context, hostname,
+ &realms);
+ }
} else {
ret = string_to_list (context, realm, &realms);
}