1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 10:18:15 +09:00

Ext2FS: Trying to create a too-long directory entry should ENAMETOOLONG

Also added some assertions to DirectoryEntry in case someone tries to
instantiate them with names that would overflow the name buffer.

DirectoryEntry is a crappy data structure, and the name buffer is also
crappy. Added a FIXME about replacing it with something nicer.

Before this patch, the DirectoryEntry::name buffer would overflow if
you did "touch extremely-long-file-name". Duh.

Fixes #538.
This commit is contained in:
Andreas Kling 2019-09-10 21:04:27 +02:00
parent ada1f504fd
commit b9be6b7bb4
Notes: sideshowbarker 2024-07-19 12:09:54 +09:00
3 changed files with 6 additions and 0 deletions

View file

@ -41,6 +41,7 @@ FS::DirectoryEntry::DirectoryEntry(const char* n, InodeIdentifier i, u8 ft)
, inode(i)
, file_type(ft)
{
ASSERT(name_length < (int)sizeof(name));
memcpy(name, n, name_length);
name[name_length] = '\0';
}
@ -50,6 +51,7 @@ FS::DirectoryEntry::DirectoryEntry(const char* n, int nl, InodeIdentifier i, u8
, inode(i)
, file_type(ft)
{
ASSERT(name_length < (int)sizeof(name));
memcpy(name, n, nl);
name[nl] = '\0';
}