Fix CE ls on non-directory filesystem paths
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m48s

This commit is contained in:
2026-03-01 00:35:14 +01:00
parent a3b98fcaa2
commit eb55a6de21
3 changed files with 9 additions and 1 deletions

View File

@@ -298,7 +298,9 @@ static void ls (const char* path_string) {
describe (path, &desc);
if (desc.type != FS_DIR) {
printf ("ERROR '%s' is not a directory\n", path_string);
volume_close ();
return;
}
size_t entries = desc.size;

View File

@@ -121,7 +121,7 @@ int tarfs_format (struct vfs_volume* volume) {
int tarfs_describe (struct vfs_volume* volume, const char* path, struct desc* desc) {
struct tarfs* tarfs = volume->udata;
if (strncmp (path, "/", PATH_MAX) == 0) {
if ((path[0] == '/') && (path[1] == '\0')) {
desc->size = 0;
desc->type = FS_DIR;

View File

@@ -18,6 +18,12 @@ static const char* str_status[] = {
[ST_BAD_PATH] = "path parsing error",
[ST_EXEC_ERROR] = "exec error",
[ST_MOUNT_ERROR] = "mount error",
[ST_TRY_AGAIN] = "try again",
[ST_NOT_DIR] = "not a directory",
[ST_DIR_NO_ENTRIES] = "empty directory",
[ST_FORMAT_ERROR] = "filesystem formatting error",
[ST_NOT_DRV] = "not a drive device",
[ST_PARTITION_ERROR] = "partition error",
};
#endif // _LIBSYSTEM_STR_STATUS_H