X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fvfs%2Fopen.c;h=0013dee14487aa2099b5161d204ce477c19652e4;hb=ba8c9b788dd5b91dd172d2bbf07ae94e660ffd7d;hp=c0bbbed8faca0da6c291665ef56a4f954479d1b8;hpb=0e47c27c2e1ef15f2f8d03194f0ab7c900c65b13;p=tpg%2Facess2.git diff --git a/Kernel/vfs/open.c b/Kernel/vfs/open.c index c0bbbed8..0013dee1 100644 --- a/Kernel/vfs/open.c +++ b/Kernel/vfs/open.c @@ -32,7 +32,7 @@ char *VFS_GetAbsPath(char *Path) int pathLen = strlen(Path); int read, write; int pos, slashNum=1, baseLen; - Uint slashOffsets[MAX_PATH_SLASHES] = {0}; + Uint slashOffsets[MAX_PATH_SLASHES] = {1}; char *cwd = CFGPTR(CFG_VFS_CWD); int cwdLen; @@ -102,9 +102,10 @@ char *VFS_GetAbsPath(char *Path) Log("write = %i, read = %i", write, read); memcpy( &ret[write], &ret[read], pos-read+1 ); } - write = pos+1; + write += (pos-read)+1; + if(slashNum < MAX_PATH_SLASHES) - slashOffsets[ slashNum++ ] = pos; + slashOffsets[ slashNum++ ] = write; else { LOG("Path '%s' has too many elements", Path); free(ret);