diff --git a/sortix/directory.cpp b/sortix/directory.cpp index e37f9598..664d1a31 100644 --- a/sortix/directory.cpp +++ b/sortix/directory.cpp @@ -81,6 +81,7 @@ namespace Sortix // another one (provide as many as we can). prev = dirent; size_t bytesused = sizeof(sortix_dirent) + dirent->d_namelen + 1; + ASSERT(bytesused <= size); size -= bytesused; dirent = (sortix_dirent*) ( ((byte*) dirent) + bytesused ); } diff --git a/sortix/fs/devfs.cpp b/sortix/fs/devfs.cpp index bf24018e..3fcf9f9f 100644 --- a/sortix/fs/devfs.cpp +++ b/sortix/fs/devfs.cpp @@ -318,7 +318,7 @@ namespace Sortix { dirent->d_namelen = needed; Error::Set(ERANGE); - return 0; + return -1; } Memory::Copy(dirent->d_name, name, namelen + 1); diff --git a/sortix/fs/initfs.cpp b/sortix/fs/initfs.cpp index 1cf74921..ed05a853 100644 --- a/sortix/fs/initfs.cpp +++ b/sortix/fs/initfs.cpp @@ -185,7 +185,7 @@ namespace Sortix { dirent->d_namelen = needed; Error::Set(ERANGE); - return 0; + return -1; } Memory::Copy(dirent->d_name, name, namelen + 1); diff --git a/sortix/fs/ramfs.cpp b/sortix/fs/ramfs.cpp index 15d39419..283a6fe8 100644 --- a/sortix/fs/ramfs.cpp +++ b/sortix/fs/ramfs.cpp @@ -223,7 +223,7 @@ namespace Sortix { dirent->d_namelen = needed; Error::Set(ERANGE); - return 0; + return -1; } Memory::Copy(dirent->d_name, name, namelen + 1);