diff --git a/Kernel/lib.c b/Kernel/lib.c index d388050ade9b8943813014a1d33e169c510f30b3..4fa226c1d3577bde3d678b61f7e1d01061b05f06 100644 --- a/Kernel/lib.c +++ b/Kernel/lib.c @@ -459,6 +459,7 @@ char *strdup(const char *Str) { char *ret; ret = malloc(strlen(Str)+1); + if( !ret ) return NULL; strcpy(ret, Str); return ret; } diff --git a/Kernel/vfs/open.c b/Kernel/vfs/open.c index bd43a5f3c817002e43c6dfdbb48386d4dfa42271..5420b33a4f35e417dd63373bcf8e22b22419202e 100644 --- a/Kernel/vfs/open.c +++ b/Kernel/vfs/open.c @@ -458,6 +458,10 @@ int VFS_Open(char *Path, Uint Mode) // Get absolute path absPath = VFS_GetAbsPath(Path); + if(absPath == NULL) { + Log_Warning("VFS", "VFS_Open: Path expansion failed '%s'", Path); + return -1; + } LOG("absPath = \"%s\"", absPath); // Parse path and get mount point node = VFS_ParsePath(absPath, NULL);