2014-02-20 14:30:58

by Simo Sorce

[permalink] [raw]
Subject: [PATCH] Fix windows hostname calculation

>From 026c489ac7019a91951b37240f438329de1d615c Mon Sep 17 00:00:00 2001
From: Simo Sorce <[email protected]>
Date: Thu, 20 Feb 2014 09:25:06 -0500
Subject: [PATCH] Drop full domain when constructing the Ad hostname.

When trying to use the special MS Windows hostanme we need to stop
at the first '.' if we got a FQDN from gethostname()
Tee HOST$@REALM form in fact uses the AD samAccountName attribute to
represent 'HOST', and that attribute is always the host's shortname.
Characters like '.' are actually illegal for a shortname in AD.

Signed-off-by: Simo Sorce <[email protected]>
---
utils/gssd/krb5_util.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
index
208c72bc072bceecc81f591887603e274dc35d9b..4b57141b4e17643ef9b56aa13639354860009db6 100644
--- a/utils/gssd/krb5_util.c
+++ b/utils/gssd/krb5_util.c
@@ -819,8 +819,10 @@ find_keytab_entry(krb5_context context, krb5_keytab
kt, const char *tgtname,

/* Compute the active directory machine name HOST$ */
strcpy(myhostad, myhostname);
- for (i = 0; myhostad[i] != 0; ++i)
+ for (i = 0; myhostad[i] != 0; ++i) {
+ if (myhostad[i] == '.') break;
myhostad[i] = toupper(myhostad[i]);
+ }
myhostad[i] = '$';
myhostad[i+1] = 0;

--
1.8.5.3


--
Simo Sorce * Red Hat, Inc * New York



2014-03-10 20:26:23

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] Fix windows hostname calculation



On 02/20/2014 09:30 AM, Simo Sorce wrote:
> From 026c489ac7019a91951b37240f438329de1d615c Mon Sep 17 00:00:00 2001
> From: Simo Sorce <[email protected]>
> Date: Thu, 20 Feb 2014 09:25:06 -0500
> Subject: [PATCH] Drop full domain when constructing the Ad hostname.
>
> When trying to use the special MS Windows hostanme we need to stop
> at the first '.' if we got a FQDN from gethostname()
> Tee HOST$@REALM form in fact uses the AD samAccountName attribute to
> represent 'HOST', and that attribute is always the host's shortname.
> Characters like '.' are actually illegal for a shortname in AD.
>
> Signed-off-by: Simo Sorce <[email protected]>
Committed...

steved.

> ---
> utils/gssd/krb5_util.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
> index
> 208c72bc072bceecc81f591887603e274dc35d9b..4b57141b4e17643ef9b56aa13639354860009db6 100644
> --- a/utils/gssd/krb5_util.c
> +++ b/utils/gssd/krb5_util.c
> @@ -819,8 +819,10 @@ find_keytab_entry(krb5_context context, krb5_keytab
> kt, const char *tgtname,
>
> /* Compute the active directory machine name HOST$ */
> strcpy(myhostad, myhostname);
> - for (i = 0; myhostad[i] != 0; ++i)
> + for (i = 0; myhostad[i] != 0; ++i) {
> + if (myhostad[i] == '.') break;
> myhostad[i] = toupper(myhostad[i]);
> + }
> myhostad[i] = '$';
> myhostad[i+1] = 0;
>
>