uutils
coreutils
BlogDocsChangelog

chmod:fix safe traversal/access

#9554Merged
Comparing
mattsu2020:chmod_fix
(
d950e93
) with
main
(
bed7012
)
CodSpeed Performance Gauge
0%
Untouched
126
Skipped
6

Benchmarks

Skipped (6)

Passed

du_summarize_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
+2%
8.5 ms8.3 ms
du_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
+1%
11.3 ms11.2 ms
du_max_depth_balanced_tree[(6, 4, 10)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
+1%
32.6 ms32.4 ms
cksum_crc32b
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
+1%
13.8 ms13.8 ms
cksum_default
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
17.4 ms17.4 ms
cp_large_file[16]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
363.5 µs362 µs
cksum_raw_output
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
17.5 ms17.4 ms
cksum_crc
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
17.5 ms17.4 ms
sort_unique_locale[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
495.9 ms495 ms
sort_unique_mixed
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
39.5 ms39.4 ms
cp_recursive_deep_tree[(120, 4)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
13.7 ms13.7 ms
sort_key_field[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
704.1 ms703.7 ms
b64_decode_ignore_garbage_synthetic
src/uu/base64/benches/base64_bench.rs
CodSpeed Performance Gauge
0%
166.9 µs166.8 µs
cp_archive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
77.7 ms77.7 ms
split_number_chunks
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
287.7 µs287.6 µs
cksum_blake2b
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
193 ms192.9 ms
factor_multiple_u64s[2]
src/uu/factor/benches/factor_bench.rs
CodSpeed Performance Gauge
0%
213.2 ms213.2 ms
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
38.4 ms38.4 ms
mv_single_file
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
136 ms136 ms
sort_german_c_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
38.5 ms38.5 ms
shuf_input_range[1000000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
229.1 ms229.1 ms
hashsum_md5
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
32 ms32 ms
mv_force_overwrite
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
138.4 ms138.4 ms
hashsum_sha512
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
110.8 ms110.8 ms
cksum_blake3
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
207.7 µs207.6 µs
sort_case_insensitive[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
279.7 ms279.7 ms
sort_numeric
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
23.2 ms23.2 ms
hashsum_sha1
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
72.5 ms72.5 ms
tsort_complex_dag[50000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
84.6 ms84.6 ms
tsort_tree_dag[(10, 3)]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
34.4 ms34.4 ms
ls_recursive_mixed_tree
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
1.4 ms1.4 ms
split_numeric_suffix
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
5.9 ms5.9 ms
tsort_input_parsing_heavy[5000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
82.5 ms82.5 ms
sort_numeric[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
1.2 s1.2 s
sort_ascii_only[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
354.8 ms354.8 ms
uniq_heavy_duplicates[10000]
src/uu/uniq/benches/uniq_bench.rs
CodSpeed Performance Gauge
0%
2 ms2 ms
rm_single_file
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
119.6 ms119.6 ms
split_lines
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
cksum_sha256
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.7 s1.7 s
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
21.7 ms21.7 ms
sort_reverse_locale[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
362.7 ms362.7 ms
b64_decode_synthetic
src/uu/base64/benches/base64_bench.rs
CodSpeed Performance Gauge
0%
168.9 µs168.9 µs
sort_german_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
39.3 ms39.3 ms
tsort_linear_chain[1000000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
1.5 s1.5 s
sort_reverse_mixed
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
39.2 ms39.2 ms
cut_bytes
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
8.5 ms8.5 ms
mv_multiple_to_dir
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
13.1 ms13.1 ms
numfmt_to_si_precision[10000]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
35.4 ms35.4 ms
fold_many_lines[100000]
src/uu/fold/benches/fold_bench.rs
CodSpeed Performance Gauge
0%
80.1 ms80.1 ms
cut_characters
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
7.5 ms7.5 ms
fold_custom_width[50000]
src/uu/fold/benches/fold_bench.rs
CodSpeed Performance Gauge
0%
32.9 ms32.9 ms
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
43.5 ms43.5 ms
hashsum_sha256
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
173.6 ms173.6 ms
cut_fields_tab
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
34.1 ms34.1 ms
unexpand_many_lines[100000]
src/uu/unexpand/benches/unexpand_bench.rs
CodSpeed Performance Gauge
0%
262 ms262 ms
nl_large_file[10]
src/uu/nl/benches/nl_bench.rs
CodSpeed Performance Gauge
0%
101 ms101 ms
cksum_shake256
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.9 s1.9 s
cksum_shake128
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.5 s1.5 s
cksum_sm3
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.6 s1.6 s
wc_words_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
11.4 s11.4 s
cksum_sha224
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.7 s1.7 s
unexpand_large_file[10]
src/uu/unexpand/benches/unexpand_bench.rs
CodSpeed Performance Gauge
0%
549.3 ms549.3 ms
numfmt_from_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
32.7 ms32.7 ms
seq_formatted
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
97.2 ms97.2 ms
hashsum_sha256_check
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
173.6 ms173.6 ms
numfmt_to_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
33.7 ms33.7 ms
cut_fields_custom_delim
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
40.8 ms40.8 ms
nl_many_lines[100000]
src/uu/nl/benches/nl_bench.rs
CodSpeed Performance Gauge
0%
79.8 ms79.8 ms
wc_default_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
50.4 ms50.4 ms
uniq_with_count[10000]
src/uu/uniq/benches/uniq_bench.rs
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
numfmt_round_modes[("up", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
34.2 ms34.2 ms
numfmt_padding[(10000, 50)]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
48.2 ms48.2 ms
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
149.9 ms149.9 ms
numfmt_round_modes[("towards-zero", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
34.2 ms34.2 ms
wc_words_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
48 ms48 ms
numfmt_round_modes[("down", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
34.2 ms34.2 ms
sort_dictionary_order[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
1.1 s1.1 s
ls_recursive_wide_tree[(10000, 1000)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
52.5 ms52.5 ms
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
37 ms37 ms
numfmt_to_iec[10000]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
33.7 ms33.7 ms
seq_custom_separator
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
28.7 ms28.7 ms
hashsum_md5_check
src/uu/hashsum/benches/hashsum_bench.rs
CodSpeed Performance Gauge
0%
32 ms32 ms
numfmt_large_numbers_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
CodSpeed Performance Gauge
0%
32.4 ms32.4 ms
sort_accented_data[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
363.6 ms363.6 ms
seq_integers
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
26.1 ms26.1 ms
cksum_sha3
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.8 s1.8 s
seq_with_step
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
13.3 ms13.3 ms
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
2.3 ms2.3 ms
rm_force_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
2 ms2 ms
cksum_sha2
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.7 s1.7 s
mv_directory
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
3.5 ms3.5 ms
uniq_case_insensitive[10000]
src/uu/uniq/benches/uniq_bench.rs
CodSpeed Performance Gauge
0%
1.8 ms1.8 ms
cksum_sha512
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.1 s1.1 s
cksum_sha384
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
1.1 s1.1 s
tsort_wide_dag[100000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
134.7 ms134.7 ms
split_bytes
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
510.3 µs510.3 µs
shuf_repeat_sampling[50000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
4.6 ms4.7 ms
wc_bytes_lines_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
120.2 ms120.2 ms
cksum_sha1
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
722.9 ms722.9 ms
cksum_md5
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
317.8 ms317.9 ms
wc_lines_large_line_count[500000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
wc_lines_variable_length[(50, 500)]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
3.4 ms3.4 ms
ls_recursive_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
55.4 ms55.4 ms
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
CodSpeed Performance Gauge
0%
38.9 ms38.9 ms
wc_chars_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
1 ms1 ms
sort_mixed_data[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
328.5 ms328.5 ms
cp_preserve_metadata[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
74.9 ms74.9 ms
wc_lines_extreme_line_lengths[(100000, 200)]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
ls_recursive_long_all_wide_tree[(15000, 1500)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
143.7 ms143.7 ms
shuf_lines[100000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
26.9 ms26.9 ms
ls_recursive_long_all_deep_tree[(100, 4)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
3.3 ms3.3 ms
ls_recursive_deep_tree[(200, 2)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
cksum_bsd
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
128.3 ms128.3 ms
ls_recursive_long_all_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
134.8 ms134.9 ms
ls_recursive_long_all_mixed_tree
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
cp_recursive_wide_tree[(6000, 800)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
189.8 ms189.8 ms
b64_encode_synthetic
src/uu/base64/benches/base64_bench.rs
CodSpeed Performance Gauge
0%
164.4 µs164.5 µs
sort_long_line[160000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
1.7 ms1.7 ms
wc_bytes_synthetic[500]
src/uu/wc/benches/wc_bench.rs
CodSpeed Performance Gauge
0%
182.4 µs182.5 µs
cksum_multiple_files
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
26 ms26 ms
sort_case_sensitive[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
174.9 ms175 ms
cksum_sysv
src/uu/cksum/benches/cksum_bench.rs
CodSpeed Performance Gauge
0%
48.2 ms48.3 ms
cp_recursive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
72.4 ms72.4 ms
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
13.6 ms13.6 ms
du_all_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
0%
18.2 ms18.2 ms
du_deep_tree[(100, 3)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms

Commits

Click on a commit to change the comparison range
Base
main
bed7012
0%
test(chmod): add spell-check ignore for dirfd, subdirs, openat, FDCWD Added a spell-checker ignore directive in the chmod test file to suppress false positives for legitimate technical terms used in Unix API calls.
2ab13b5
28 days ago
by mattsu2020
+0.02%
test(chmod): enforce strace requirement in recursive test, fail fast instead of skip Previously, the test_chmod_recursive_uses_dirfd_for_subdirs test skipped gracefully if strace was unavailable, without failing. This change enforces the strace dependency by failing the test immediately if strace is not installed or runnable, ensuring the test runs reliably in environments where it is expected to pass, and preventing silent skips.
232ad27
26 days ago
by mattsu2020
-0.02%
ci: install strace in Ubuntu CI jobs for debugging system calls Add installation of strace tool on Ubuntu runners in both individual build/test and feature build/test jobs. This enables tracing system calls during execution, aiding in debugging and performance analysis within the CI/CD pipeline. Updated existing apt-get commands and added conditional steps for Linux-only installations.
3335055
26 days ago
by mattsu2020
0%
ci: Add strace installation to Ubuntu-based CI workflows Install strace on ubuntu-latest runners across multiple jobs to enable system call tracing for testing purposes, ensuring compatibility with tests that require this debugging tool. This includes updating package lists in existing installation steps.
41cc13e
26 days ago
by mattsu2020
-0.02%
chore(build): install strace and prevent apt prompts in Cross.toml pre-build Modified the pre-build command to install strace utility for debugging and added -y flag to apt-get install to skip prompts, ensuring non-interactive builds.
ce63d1d
26 days ago
by mattsu2020
+0.02%
feat(build): support Alpine-based cross images in pre-build Detect package manager (apt vs apk) to install tzdata and strace in both Debian/Ubuntu and Alpine *-musl targets. Added fallback warning for unsupported managers. This ensures strace is available for targets using Alpine, which doesn't have apt-get.
d0cda8d
26 days ago
by mattsu2020
+0.05%
refactor(build): improve pre-build script readability by using multi-line strings Replace escaped multi-line string with triple-quoted string for better readability in Cross.toml.
266cdd8
26 days ago
by mattsu2020
-0.04%
feat(ci): install strace in WSL2 GitHub Actions workflow Install strace utility in the WSL2 environment to support tracing system calls during testing. Minor update to Cross.toml spell-checker ignore list for consistency with change.
1e1d982
26 days ago
by mattsu2020
-0.03%
ci(wsl2): install strace as root with non-interactive apt-get Updated the WSL2 workflow step to use root shell (wsl-bash-root) for installing strace, removing sudo calls and adding DEBIAN_FRONTEND=noninteractive to prevent prompts. This improves CI reliability by ensuring direct root access and automated, interrupt-free package installation.
91246f6
26 days ago
by mattsu2020
+0.03%
ci: Move strace installation to user shell and update spell ignore Fix WSL2 GitHub Actions workflow by installing strace as the user instead of root for better permission handling, and add "noninteractive" to the spell-checker ignore comment for consistency with the new apt-get command. This ensures the tool is available in the testing environment without unnecessary privilege escalation.
57520c0
26 days ago
by mattsu2020
-2.01%
chore: ci: remove unused strace installation from CI workflows Remove strace package installation from multiple GitHub Actions workflow files (CICD.yml, l10n.yml, wsl2.yml). Strace was historically installed in Ubuntu jobs for debugging system calls, but it's no longer required for the tests and builds, reducing CI setup time and dependencies.
09dae13
26 days ago
by mattsu2020
+2.02%
ci: add strace installation and fix spell-checker comments in CI files - Install strace package in CICD workflow to support safe traversal verification for utilities like rm, chmod, chown, chgrp, mv, and du, enabling syscall tracing for testing. - Clean up spell-checker ignore comments in wsl2.yml and Cross.toml by removing misplaced flags.第二个测试产品**ci: add strace installation and fix spell-checker comments in CI files** - Install strace package in CICD workflow to support safe traversal verification for utilities like rm, chmod, chown, chgrp, mv, and du, enabling syscall tracing for testing. - Clean up spell-checker ignore comments in wsl2.yml and Cross.toml by removing misplaced flags.
4ce6cd1
26 days ago
by mattsu2020
-2.05%
test: add regression guard for recursive chmod dirfd-relative traversal Add a check in check-safe-traversal.sh to ensure recursive chmod operations use dirfd-relative openat calls instead of AT_FDCWD with multi-component paths, preventing potential race conditions. Ignore the corresponding Rust test as it is now covered by this shell script guard.
6ce14f1
26 days ago
by mattsu2020
+2.09%
Merge branch 'main' into chmod_fix
d950e93
26 days ago
by mattsu2020
© 2025 CodSpeed Technology
Home Terms Privacy Docs