mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 23:42:32 +00:00
libc: warn on missing std*="" or <fd path=""> file
The libc kernel used to silently go on if one of the files given through stdin/stdout/stderr or <fd path=""> was missing (with possibly vital functionality for the component not working). A pointer to the presumably simple configuration issue of the underlying scenario was not given to the user. With this commit, the libc kernel prints a descriptive warning before proceeding with the invalid file descriptor Fixes #4218
This commit is contained in:
parent
5e9e003bb0
commit
d9b5e4ae8d
@ -181,8 +181,10 @@ void Libc::Kernel::_init_file_descriptors()
|
|||||||
Absolute_path const path { resolve_absolute_path(attr_value) };
|
Absolute_path const path { resolve_absolute_path(attr_value) };
|
||||||
|
|
||||||
struct stat out_stat { };
|
struct stat out_stat { };
|
||||||
if (_vfs.stat_from_kernel(path.string(), &out_stat) != 0)
|
if (_vfs.stat_from_kernel(path.string(), &out_stat) != 0) {
|
||||||
|
warning("failed to call 'stat' on ", path);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
File_descriptor *fd =
|
File_descriptor *fd =
|
||||||
_vfs.open_from_kernel(path.string(), flags, libc_fd);
|
_vfs.open_from_kernel(path.string(), flags, libc_fd);
|
||||||
@ -218,7 +220,7 @@ void Libc::Kernel::_init_file_descriptors()
|
|||||||
_vfs.lseek_from_kernel(fd, seek);
|
_vfs.lseek_from_kernel(fd, seek);
|
||||||
|
|
||||||
} catch (Symlink_resolve_error) {
|
} catch (Symlink_resolve_error) {
|
||||||
warning("failed to resolve ", attr_value);
|
warning("failed to resolve path for ", attr_value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user