On 11/27/2013 08:25 AM, Alexander Bokovoy wrote:
On Wed, 27 Nov 2013, Tomas Babej wrote:
daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c index 7d29fe559be55607fcb6b83fa521372e5197b848..c75b3fc792ef81e4bf7ce69da60675d133d373c5 100644
--- a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
@@ -161,9 +161,13 @@ static int ipa_cldap_encode_netlogon(char *fq_hostname, char *domain,
    nlr->dns_domain = domain;
    nlr->pdc_dns_name = fq_hostname;
    nlr->domain_name = name;
-    pdc_name = talloc_asprintf(nlr, "\\\\%s", fq_hostname);
+
+    /* copy the first 15 characters of the fully qualified hostname*/
+    pdc_name = talloc_asprintf(nlr, "\\\\%s", 15, fq_hostname);
This will not work because you missed .* in the format line. Check
vsnprintf manpage.


Right. Updated version attached.

--
Tomas Babej
Associate Software Engeneer | Red Hat | Identity Management
RHCE | Brno Site | IRC: tbabej | freeipa.org

From c6623d91fabd3c0a3e91f3bf45043afd52f49439 Mon Sep 17 00:00:00 2001
From: Tomas Babej <tba...@redhat.com>
Date: Tue, 26 Nov 2013 12:14:39 +0100
Subject: [PATCH] ipa-cldap: Cut NetBIOS name after 15 characters

The CLDAP DS plugin uses the uppercased first segment of the fully
qualified hostname as the NetBIOS name. We need to limit its size
to 15 characters.

https://fedorahosted.org/freeipa/ticket/4028
---
 daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
index 7d29fe559be55607fcb6b83fa521372e5197b848..f2e74e2c5b6e0d04dd3dc0eb15f25593aa91da8e 100644
--- a/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
+++ b/daemons/ipa-slapi-plugins/ipa-cldap/ipa_cldap_netlogon.c
@@ -161,9 +161,13 @@ static int ipa_cldap_encode_netlogon(char *fq_hostname, char *domain,
     nlr->dns_domain = domain;
     nlr->pdc_dns_name = fq_hostname;
     nlr->domain_name = name;
-    pdc_name = talloc_asprintf(nlr, "\\\\%s", fq_hostname);
+
+    /* copy the first 15 characters of the fully qualified hostname*/
+    pdc_name = talloc_asprintf(nlr, "\\\\%.*s", 15, fq_hostname);
+
     for (p = pdc_name; *p; p++) {
-        if (*p == '.') {
+        /* Create the NetBIOS name from the first segment of the hostname */
+        if ((*p == '.') || (*p == '\0')) {
             *p = '\0';
             break;
         }
-- 
1.8.3.1

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to