mirror of
https://git.openafs.org/openafs.git
synced 2025-01-20 07:51:00 +00:00
unc-paths-current-directory-20040727
fix the handling of unc paths in pioctl calls when the current directory is the unc path. (not likely to be the case with cmd.exe since it does not support pure unc path environments. 4nt.exe shows the problem though.)
This commit is contained in:
parent
49fb21afc5
commit
b20129a337
@ -309,8 +309,24 @@ fs_GetFullPath(char *pathp, char *outPathp, long outSize)
|
|||||||
GetCurrentDirectory(sizeof(tpath), tpath);
|
GetCurrentDirectory(sizeof(tpath), tpath);
|
||||||
if (tpath[1] == ':')
|
if (tpath[1] == ':')
|
||||||
strcpy(outPathp, tpath + 2); /* skip drive letter */
|
strcpy(outPathp, tpath + 2); /* skip drive letter */
|
||||||
else
|
else if ( tpath[0] == '\\' && tpath[1] == '\\') {
|
||||||
strcpy(outPathp, tpath); /* copy entire UNC path */
|
/* UNC path - strip off the server and sharename */
|
||||||
|
int i, count;
|
||||||
|
for ( i=2,count=2; count < 4 && tpath[i]; i++ ) {
|
||||||
|
if ( tpath[i] == '\\' || tpath[i] == '/' ) {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( tpath[i] == 0 ) {
|
||||||
|
strcpy(outPathp,"\\");
|
||||||
|
} else {
|
||||||
|
strcpy(outPathp,&tpath[--i]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* this should never happen */
|
||||||
|
strcpy(outPathp, tpath);
|
||||||
|
}
|
||||||
|
|
||||||
/* if there is a non-null name after the drive, append it */
|
/* if there is a non-null name after the drive, append it */
|
||||||
if (*firstp != 0) {
|
if (*firstp != 0) {
|
||||||
int len = strlen(outPathp);
|
int len = strlen(outPathp);
|
||||||
|
Loading…
Reference in New Issue
Block a user