readdirents(2) now properly reports ERANGE.

This commit is contained in:
Jonas 'Sortie' Termansen 2012-01-15 00:43:13 +01:00
parent f476a82498
commit c8c34d3cdd
4 changed files with 4 additions and 3 deletions

View File

@ -81,6 +81,7 @@ namespace Sortix
// another one (provide as many as we can). // another one (provide as many as we can).
prev = dirent; prev = dirent;
size_t bytesused = sizeof(sortix_dirent) + dirent->d_namelen + 1; size_t bytesused = sizeof(sortix_dirent) + dirent->d_namelen + 1;
ASSERT(bytesused <= size);
size -= bytesused; size -= bytesused;
dirent = (sortix_dirent*) ( ((byte*) dirent) + bytesused ); dirent = (sortix_dirent*) ( ((byte*) dirent) + bytesused );
} }

View File

@ -318,7 +318,7 @@ namespace Sortix
{ {
dirent->d_namelen = needed; dirent->d_namelen = needed;
Error::Set(ERANGE); Error::Set(ERANGE);
return 0; return -1;
} }
Memory::Copy(dirent->d_name, name, namelen + 1); Memory::Copy(dirent->d_name, name, namelen + 1);

View File

@ -185,7 +185,7 @@ namespace Sortix
{ {
dirent->d_namelen = needed; dirent->d_namelen = needed;
Error::Set(ERANGE); Error::Set(ERANGE);
return 0; return -1;
} }
Memory::Copy(dirent->d_name, name, namelen + 1); Memory::Copy(dirent->d_name, name, namelen + 1);

View File

@ -223,7 +223,7 @@ namespace Sortix
{ {
dirent->d_namelen = needed; dirent->d_namelen = needed;
Error::Set(ERANGE); Error::Set(ERANGE);
return 0; return -1;
} }
Memory::Copy(dirent->d_name, name, namelen + 1); Memory::Copy(dirent->d_name, name, namelen + 1);