]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-windows-reg-fix-20060215
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 15 Feb 2006 16:37:40 +0000 (16:37 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 15 Feb 2006 16:37:40 +0000 (16:37 +0000)
cleanup the back connection hostname code

(cherry picked from commit 658338b015fa6cd081726a6c96ab8c756857974a)

src/WINNT/afsd/afsd_init.c

index a438fb101a32f4e6fc499f6bd3236f9e3f367439..2ceefa9a190f07d9c7e3313444edacf333bd62e5 100644 (file)
@@ -279,26 +279,29 @@ configureBackConnectionHostNames(void)
                        KEY_READ|KEY_WRITE,
                        &hkMSV10) == ERROR_SUCCESS )
     {
-        if (RegQueryValueEx( hkMSV10, "BackConnectionHostNames", 0, &dwType, NULL, &dwSize) == ERROR_SUCCESS) {
-            pHostNames = malloc(dwSize + strlen(cm_NetbiosName) + 1);
-            RegQueryValueEx( hkMSV10, "BackConnectionHostNames", 0, &dwType, pHostNames, &dwSize);
-
-            for (pName = pHostNames; *pName ; pName += strlen(pName) + 1)
-            {
-                if ( !stricmp(pName, cm_NetbiosName) ) {
-                    bNameFound = TRUE;
-                    break;
-                }   
-            }
-        }
+       if (RegQueryValueEx( hkMSV10, "BackConnectionHostNames", 0, 
+                            &dwType, NULL, &dwSize) == ERROR_SUCCESS) {
+           dwSize += strlen(cm_NetbiosName) + 1;
+           pHostNames = malloc(dwSize);
+           if (RegQueryValueEx( hkMSV10, "BackConnectionHostNames", 0, &dwType, 
+                                pHostNames, &dwSize) == ERROR_SUCCESS) {
+               for (pName = pHostNames; *pName ; pName += strlen(pName) + 1)
+               {
+                   if ( !stricmp(pName, cm_NetbiosName) ) {
+                       bNameFound = TRUE;
+                       break;
+                   }   
+               }
+           }
+       }
              
         if ( !bNameFound ) {
             int size = strlen(cm_NetbiosName) + 2;
             if ( !pHostNames ) {
                 pHostNames = malloc(size);
-                dwSize = 1;
+                dwSize = size;
+               pName = pHostNames;
             }
-            pName = pHostNames;
             StringCbCopyA(pName, size, cm_NetbiosName);
             pName += size - 1;
             *pName = '\0';  /* add a second nul terminator */
@@ -370,8 +373,12 @@ configureBackConnectionHostNames(void)
         }
         RegCloseKey(hkMSV10);
     }
+
+    if (pHostNames)
+       free(pHostNames);
 }
 
+
 #if !defined(DJGPP)
 static void afsd_InitServerPreferences(void)
 {