readdirents(2) now properly reports ERANGE.
This commit is contained in:
parent
f476a82498
commit
c8c34d3cdd
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue