From: Jeffrey Altman Date: Sat, 12 Feb 2011 16:52:12 +0000 (-0500) Subject: Windows: Fix GetIoctlHandle path construction X-Git-Tag: upstream/1.8.0_pre1^2~4201 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=e4119971b0131411dc686adcbfc6b5bb3c9b52f1;p=packages%2Fo%2Fopenafs.git 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 --- diff --git a/src/sys/pioctl_nt.c b/src/sys/pioctl_nt.c index fee3dedee..5e60602c6 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);