]> 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>
Sat, 12 Feb 2011 19:25:22 +0000 (11:25 -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: I4e863b854ea12b69858be712455dc6b6a0d36c39
Reviewed-on: http://gerrit.openafs.org/3925
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 fee3dedee71fff7c4a7dd7aaa004ba47d417ab24..5e60602c6ac2c18beb4fde0c0d58fc10557daa0b 100644 (file)
@@ -642,10 +642,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]="";
 
@@ -683,7 +683,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);