mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Fix struct kernel_dirent::d_namlen being called d_namelen.
This commit is contained in:
parent
ffff20be35
commit
021256ad8e
6 changed files with 11 additions and 11 deletions
|
@ -229,9 +229,9 @@ bool RespondReadDir(int svr, int chl, struct kernel_dirent* dirent)
|
|||
struct fsm_resp_readdirents body;
|
||||
body.ino = dirent->d_ino;
|
||||
body.type = dirent->d_type;
|
||||
body.namelen = dirent->d_namelen;
|
||||
body.namelen = dirent->d_namlen;
|
||||
return RespondMessage(svr, chl, FSM_RESP_READDIRENTS, &body, sizeof(body)) &&
|
||||
RespondData(svr, chl, dirent->d_name, dirent->d_namelen);
|
||||
RespondData(svr, chl, dirent->d_name, dirent->d_namlen);
|
||||
}
|
||||
|
||||
void HandleRefer(int svr, int chl, struct fsm_req_refer* msg, Filesystem* fs)
|
||||
|
@ -466,10 +466,10 @@ void HandleReadDir(int svr, int chl, struct fsm_req_readdirents* msg, Filesystem
|
|||
kernel_entry.d_ino = entry->inode;
|
||||
kernel_entry.d_dev = 0;
|
||||
kernel_entry.d_type = 0; // TODO: Support this!
|
||||
kernel_entry.d_namelen = entry->name_len;
|
||||
kernel_entry.d_namlen = entry->name_len;
|
||||
memcpy(kernel_entry.d_name, entry->name, entry->name_len);
|
||||
size_t dname_offset = offsetof(struct kernel_dirent, d_name);
|
||||
padding[dname_offset + kernel_entry.d_namelen] = '\0';
|
||||
padding[dname_offset + kernel_entry.d_namlen] = '\0';
|
||||
block->Unref();
|
||||
inode->Unref();
|
||||
RespondReadDir(svr, chl, &kernel_entry);
|
||||
|
|
|
@ -57,7 +57,7 @@ static int fddir_sortix_readents(fddir_sortix_t* info)
|
|||
{
|
||||
if ( errno != ERANGE )
|
||||
return -1;
|
||||
size_t newdirentsize = sizeof(struct kernel_dirent) + info->dirent->d_namelen + 1;
|
||||
size_t newdirentsize = sizeof(struct kernel_dirent) + info->dirent->d_namlen + 1;
|
||||
if ( newdirentsize < info->direntsize )
|
||||
newdirentsize *= 2;
|
||||
struct kernel_dirent* newdirent = (struct kernel_dirent*) malloc(newdirentsize);
|
||||
|
@ -83,7 +83,7 @@ static int fddir_sortix_read(void* user, struct dirent* dirent, size_t* size)
|
|||
}
|
||||
|
||||
size_t provided = (user) ? *size : 0;
|
||||
size_t needed = sizeof(struct dirent) + info->current->d_namelen + 1;
|
||||
size_t needed = sizeof(struct dirent) + info->current->d_namlen + 1;
|
||||
*size = needed;
|
||||
if ( provided < needed )
|
||||
return 1;
|
||||
|
|
|
@ -323,7 +323,7 @@ ssize_t Descriptor::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
|
|||
memset(&retdirent, 0, sizeof(retdirent));
|
||||
retdirent.d_reclen = needed;
|
||||
retdirent.d_off = 0;
|
||||
retdirent.d_namelen = namelen;
|
||||
retdirent.d_namlen = namelen;
|
||||
if ( !ctx->copy_to_dest(dirent, &retdirent, sizeof(retdirent)) )
|
||||
return -1;
|
||||
if ( size < needed )
|
||||
|
|
|
@ -150,7 +150,7 @@ ssize_t Dir::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
|
|||
if ( size < needed )
|
||||
{
|
||||
errno = ERANGE;
|
||||
retdirent.d_namelen = namelen;
|
||||
retdirent.d_namlen = namelen;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -158,7 +158,7 @@ ssize_t Dir::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
|
|||
ret = needed;
|
||||
retdirent.d_reclen = needed;
|
||||
retdirent.d_off = 0;
|
||||
retdirent.d_namelen = namelen;
|
||||
retdirent.d_namlen = namelen;
|
||||
retdirent.d_ino = inode->ino;
|
||||
retdirent.d_dev = inode->dev;
|
||||
retdirent.d_type = ModeToDT(inode->type);
|
||||
|
|
|
@ -921,7 +921,7 @@ ssize_t Unode::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
|
|||
struct kernel_dirent entry;
|
||||
entry.d_reclen = sizeof(entry) + resp.namelen + 1;
|
||||
entry.d_off = 0;
|
||||
entry.d_namelen = resp.namelen;
|
||||
entry.d_namlen = resp.namelen;
|
||||
entry.d_dev = (dev_t) server;
|
||||
entry.d_ino = resp.ino;
|
||||
entry.d_type = resp.type;
|
||||
|
|
|
@ -42,7 +42,7 @@ struct kernel_dirent
|
|||
{
|
||||
size_t d_reclen;
|
||||
size_t d_off;
|
||||
size_t d_namelen;
|
||||
size_t d_namlen;
|
||||
ino_t d_ino;
|
||||
dev_t d_dev;
|
||||
unsigned char d_type;
|
||||
|
|
Loading…
Add table
Reference in a new issue