X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FFilesystems%2FInitRD%2Fmain.c;h=96f783e391fb9010af448d5de5ad7a45fe7c0af4;hb=04a050f42807686dc119838c82372409246d55bb;hp=863a24a3634f47787b00095eeb7ed03d79cf4b75;hpb=e02f66c7125bf18f77c6c53587238cbd49da2c89;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Filesystems/InitRD/main.c b/KernelLand/Modules/Filesystems/InitRD/main.c index 863a24a3..96f783e3 100644 --- a/KernelLand/Modules/Filesystems/InitRD/main.c +++ b/KernelLand/Modules/Filesystems/InitRD/main.c @@ -18,7 +18,7 @@ tVFS_Node *InitRD_InitDevice(const char *Device, const char **Arguments); void InitRD_Unmount(tVFS_Node *Node); tVFS_Node *InitRD_GetNodeFromINode(tVFS_Node *Root, Uint64 Inode); size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Size, void *Buffer); -char *InitRD_ReadDir(tVFS_Node *Node, int ID); + int InitRD_ReadDir(tVFS_Node *Node, int ID, char Dest[FILENAME_MAX]); tVFS_Node *InitRD_FindDir(tVFS_Node *Node, const char *Name); void InitRD_DumpDir(tVFS_Node *Node, int Indent); @@ -92,14 +92,15 @@ size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffe /** * \brief Read from a directory */ -char *InitRD_ReadDir(tVFS_Node *Node, int ID) +int InitRD_ReadDir(tVFS_Node *Node, int ID, char Dest[FILENAME_MAX]) { tInitRD_File *dir = Node->ImplPtr; if(ID >= Node->Size) - return NULL; + return -EINVAL; - return strdup(dir[ID].Name); + strncpy(Dest, dir[ID].Name, FILENAME_MAX); + return 0; } /**