}
// - Fetch ChRoot
- if( chroot == NULL ) {
+ if( chroot == NULL )
chroot = "";
- chrootLen = 0;
- } else {
- chrootLen = strlen(chroot);
- }
+ chrootLen = strlen(chroot);
// Check if the path is already absolute
if(Path[0] == '/') {
ret[iPos2] = 0;
// Prepend the chroot
- memcpy( ret, chroot, chrootLen );
+ if(chrootLen)
+ memcpy( ret, chroot, chrootLen );
LEAVE('s', ret);
// Log_Debug("VFS", "VFS_GetAbsPath: RETURN '%s'", ret);
*TruePath = malloc( gVFS_RootMount->MountPointLen+1 );
strcpy(*TruePath, gVFS_RootMount->MountPoint);
}
+ if(MountPoint) *MountPoint = gVFS_RootMount;
LEAVE('p', gVFS_RootMount->RootNode);
return gVFS_RootMount->RootNode;
}
}
curNode->Read( curNode, 0, curNode->Size, path_buffer );
path_buffer[ curNode->Size ] = '\0';
+ LOG("path_buffer = '%s'", path_buffer);
strcat(path_buffer, Path + ofs+nextSlash);
Path = path_buffer;
}
// EVIL: Goto :)
+ LOG("Symlink -> '%s', restart", Path);
goto restart_parse;
}
{
int i;
- ENTER("pNode pMount iMode", Node, Mount, Mode);
+ ENTER("pNode pMount xMode", Node, Mount, Mode);
i = 0;
i |= (Mode & VFS_OPENFLAG_EXEC) ? VFS_PERM_EXECUTE : 0;
LEAVE_RET('i', -1);
}
}
-
+
LEAVE_RET('x', VFS_int_CreateHandle(node, mnt, Mode));
}
// Create Absolute
buf = VFS_GetAbsPath(Dest);
if(buf == NULL) {
- Log("VFS_ChDir: Path expansion failed");
+ Log_Notice("VFS", "VFS_ChDir: Path expansion failed");
return -1;
}
// Check if path exists
fd = VFS_Open(buf, VFS_OPENFLAG_EXEC);
if(fd == -1) {
- Log("VFS_ChDir: Path is invalid");
+ Log_Notice("VFS", "VFS_ChDir: Path is invalid");
return -1;
}