]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: Fix GetIoctlHandle path construction
authorJeffrey Altman <jaltman@your-file-system.com>
Sat, 12 Feb 2011 16:52:12 +0000 (11:52 -0500)
committerJeffrey Altman <jaltman@openafs.org>
Sun, 13 Feb 2011 02:33:24 +0000 (18:33 -0800)
GetIoctlHandle() is used to construct the magic pioctl file
path used to initiate pioctl operations with the cache manager.
The first error introduced double directory separators.  The
second error was testing an uninitialized value which could
have resulted in a missing directory separator.

Change-Id: I691fde63adf295c380312772e7d320ff99e89d70
Reviewed-on: http://gerrit.openafs.org/3929
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
src/sys/pioctl_nt.c

index 5b064d2fe472cb2c1daf0da2790058f6fd0f7233..71d7982b89e396daeae010131f03933b618a84aa 100644 (file)
@@ -641,10 +641,10 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep)
                     count++;
                i++;
             }
-            if (fileNamep[i] == 0)
+            if (fileNamep[i] == 0 || (fileNamep[i-1] != '\\' && fileNamep[i-1] != '/'))
                 tbuffer[i++] = '\\';
             tbuffer[i] = 0;
-            strcat(tbuffer, SMB_IOCTL_FILENAME);
+            strcat(tbuffer, SMB_IOCTL_FILENAME_NOSLASH);
         } else {
             char curdir[MAX_PATH]="";
 
@@ -682,7 +682,7 @@ GetIoctlHandle(char *fileNamep, HANDLE * handlep)
                        count++;
                    i++;
                 }
-                if (tbuffer[i] == 0)
+                if (curdir[i] == 0 || (curdir[i-1] != '\\' && curdir[i-1] != '/'))
                     tbuffer[i++] = '\\';
                 tbuffer[i] = 0;
                 strcat(tbuffer, SMB_IOCTL_FILENAME_NOSLASH);