[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Freeipa-devel] [PATCH 0133] ipa-cldap: Cut NetBIOS name after 15 characters



On 12/11/2013 12:56 PM, Alexander Bokovoy wrote:
On Wed, 11 Dec 2013, Tomas Babej wrote:
On 11/27/2013 03:38 PM, Simo Sorce wrote:
On Wed, 2013-11-27 at 08:50 +0100, Tomas Babej wrote:
Sorry to nitpick but ...

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);
Probably better to #define NETBIOS_NAME_MAX 15 somewhere above and then
use the macro here.

+
      for (p = pdc_name; *p; p++) {
-        if (*p == '.') {
+        /* Create the NetBIOS name from the first segment of the
hostname */
+        if ((*p == '.') || (*p == '\0')) {
The second check is redundant, you'll never get there, the for loop will
bail earlier. I think you only need to add the comment here and not
touch the code as the asprintf above took care of properly terminating
the name at the 15 chars mark already.

              *p = '\0';
              break;
          }
Simo.


Thanks for the catches.

Updated patch attached.

ACK.


Pushed to master, ipa-3-3.

Martin


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]