From e4119971b0131411dc686adcbfc6b5bb3c9b52f1 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 12 Feb 2011 11:52:12 -0500 Subject: [PATCH] Windows: Fix GetIoctlHandle path construction 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/sys/pioctl_nt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sys/pioctl_nt.c b/src/sys/pioctl_nt.c index fee3dedee7..5e60602c6a 100644 --- a/src/sys/pioctl_nt.c +++ b/src/sys/pioctl_nt.c @@ -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);