-
-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qubes-fs-tree-check: Detect if a directory is unsafe for display #534
base: main
Are you sure you want to change the base?
Conversation
This improves UX.
When processing directories, process_dirent() detected filenames that are unsafe for display and set "bad" to true, but "bad" was not used to determine the return value of process_dirent(). Instead, the function tail-called simple_fs_walk(). Therefore, directories with unsafe filenames were not detected. This caused qubes.Filecopy to be used instead of qubes.Filecopy+allow-all-names. qubes.Filecopy (correctly) rejects the directory. Fix the bug by ensuring that if bad is set to true, process_dirent() returns true even if the function recurses into simple_fs_walk(). This will cause qubes.Filecopy+allow-all-names to be used, which will accept the directory and allow the copy to succeed. Fixes: QubesOS/qubes-issues#9567
PipelineRetryFailed |
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024111418-4.3&flavor=pull-requests Test run included the following:
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024091704-4.3&flavor=update
Failed tests5 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/112766#dependencies 201 fixed
Unstable tests
|
When processing directories,
process_dirent()
detected filenames that are unsafe for display and setbad
to true, butbad
was not used to determine the return value ofprocess_dirent()
. Instead, the function tail-calledsimple_fs_walk()
. Therefore, directories with unsafe filenames were not detected. This causedqubes.Filecopy
to be used instead ofqubes.Filecopy+allow-all-names
.qubes.Filecopy
(correctly) rejects the directory.Fix the bug by ensuring that if
bad
is set to true,process_dirent()
returns true even if the function recurses intosimple_fs_walk()
. This will causequbes.Filecopy+allow-all-names
to be used, which will accept the directory and allow the copy to succeed.Fixes: QubesOS/qubes-issues#9567