summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* sighook: Return instead of re-raising for faultsTavian Barnes2024-11-231-5/+11
| | | | | | | | | | | This makes the death look exactly like it would if we didn't handle the signal at all. Coredumps will point at the right instruction, segfaults will get logged in dmesg again, etc. Technically POSIX says this is undefined, but if we get a fault, we've already done something undefined anyway ;) Link: https://github.com/rust-lang/rust/issues/26458
* sighook: Check for SA_RESTART before using itTavian Barnes2024-11-231-1/+7
| | | | QNX doesn't support SA_RESTART.
* bfstd: makedev() takes 3 arguments on QNXTavian Barnes2024-11-231-1/+3
|
* prelude: Define _QNX_SOURCETavian Barnes2024-11-231-0/+5
|
* build: Check for -pthread before using itTavian Barnes2024-11-232-2/+12
| | | | | | QNX's qcc, for example, will complain that cc1: error: command-line option '-pthread' is valid for the driver but not for C
* tests/getopts: Remove unused variableTavian Barnes2024-11-211-1/+0
|
* docs/bfs.1: Simplify the formattingTavian Barnes2024-11-201-64/+105
|
* ioq: Enable IORING_SETUP_SUBMIT_ALLTavian Barnes2024-11-201-2/+18
|
* color: Squelch a -Wmaybe-uninitialized warning on non-LTO buildsTavian Barnes2024-11-201-1/+1
|
* build(deps): bump codecov/codecov-action from 4 to 5dependabot[bot]2024-11-181-1/+1
| | | | | | | | | | | | | | | Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4...v5) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* ioq: Check for io_uring_register_iowq_max_workers() before using itTavian Barnes2024-11-113-0/+15
| | | | | | | This allows us to build against liburing as old as version 2.0, which is apparently shipped by the latest Amazon Linux distribution. Fixes: https://github.com/tavianator/bfs/issues/147
* sanity: Don't mark memory uninit in sanitize_{alloc,free}()Tavian Barnes2024-11-023-19/+45
| | | | | We might want to change the size of an allocated region without changing which bytes are initialized.
* alloc: Stop supporting pathological flexible array ABIsTavian Barnes2024-11-023-22/+29
|
* alloc: Add macro versions of alignment utilsTavian Barnes2024-11-021-3/+12
|
* trie: Fix varena_free() with wrong sizeTavian Barnes2024-11-021-8/+8
| | | | | | | In trie_remove(), clearing the bit before trie_node_collapse() causes us to free the old node with size 1 instead of 2, putting it on the wrong freelist. This is technically safe with the current arena implementation, but not intentional.
* alloc: Don't require size % align == 0Tavian Barnes2024-11-025-39/+27
| | | | | | | | | Allowing unaligned sizes will allow us to allocate aligned slabs with additional metadata in the tail without ballooning the allocation size for large alignments. Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2244.htm#dr_460 Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2072.htm
* Release 4.0.44.0.4Tavian Barnes2024-10-313-2/+20
|
* Merge pull request #146 from jody-frankowski/fix/capa-color-non-linuxTavian Barnes2024-10-315-1/+43
|\ | | | | Fix bfs coloring all files as if they had a capability, on non-Linux systems
| * color: Handle bfs_check_capabilities error code (-1) in cpath_has_capabilitiesJody Frankowski2024-10-315-1/+43
|/ | | | | | | | | | | On non-Linux systems, bfs_check_capabilities always returned -1, so cpath_has_capabilities would always return true. If bfs was called with an LS_COLORS containing the `ca` statement, e.g. `ca=30;41`, bfs would color ALL the files. While including the `ca` statement in LS_COLORS on non-Linux systems is unusual, this is not an error and is a valid use-case (e.g. Using GNU ls or lsd). Fixes: 1520d4d3 ("color: Don't color files like directories on ENOTDIR")
* bit: Add bswap() overloads for every primitive typeTavian Barnes2024-10-272-9/+41
| | | | Fixes: https://github.com/tavianator/bfs/issues/145
* tests/posix: Add a test for overly aggressive -exec {} + matchingTavian Barnes2024-10-272-0/+33
| | | | Link: https://savannah.gnu.org/bugs/?66365
* Merge pull request #144 from ryandesign/patch-1Tavian Barnes2024-10-261-1/+1
|\ | | | | Fix typo in manpage
| * Fix typo in manpageRyan Carsten Schmidt2024-10-261-1/+1
|/
* Release 4.0.34.0.3Tavian Barnes2024-10-223-2/+20
|
* build: New make dist[sign] targetsTavian Barnes2024-10-221-1/+11
|
* dstring: Add an infallible dstrshrink() functionTavian Barnes2024-10-174-9/+47
| | | | And mark the fallible ones with _nodiscard.
* color: Don't color files like directories on ENOTDIRTavian Barnes2024-10-162-116/+232
|
* color: Fix an infinite loop colorizing some invalid pathsTavian Barnes2024-10-133-8/+13
| | | | | | | | | | | | | | Previously, given $ touch file $ ln -s file/file notdir $ bfs notdir/file bfs would loop forever when printing the error message, since it expected stripping the trailing slash from "notdir/" to fix the ENOTDIR error, but the broken symlink still gave the same error. Fixes: b4c3201 ("color: Only highlight the trailing slash on ENOTDIR")
* tests/gnu: Test -L -printf %YTavian Barnes2024-10-102-0/+18
|
* tests/trie: Improve code coverageTavian Barnes2024-10-101-1/+4
|
* sighook: Don't forget to reset list->tail on the last sigpop()Tavian Barnes2024-10-102-0/+9
| | | | | | | This was causing a UAF if we ever unregistered the last hook for a signal and then re-registered one. Fixes: 75b7f70 ("sighook: Make sigunhook() O(1)")
* eval: Use xtimer_start() for status bar updatesTavian Barnes2024-10-101-36/+76
|
* tests/sighook: Use the new xtimer_start() APITavian Barnes2024-10-101-8/+6
|
* xtime: Add a wrapper for timer_create()/setitimer()Tavian Barnes2024-10-104-0/+130
| | | | | | setitimer() is obsolescent in POSIX 2008 and removed from POSIX 2024. However, at least macOS doesn't implement the new timer_create() API, so we still need the setitimer() fallback.
* Adjust in/out parameter docsTavian Barnes2024-10-105-11/+11
|
* Fix some -Wundef-prefix warningsTavian Barnes2024-10-104-6/+14
|
* trie: Switch the tag bits aroundTavian Barnes2024-10-081-31/+28
| | | | | | First of all, almost all checks were !trie_is_leaf(), so it makes sense to use trie_is_node() instead. Secondly, using the tag bit for internal nodes allows us to remove some NULL checks.
* trie: Add some extra bounds checkingTavian Barnes2024-10-081-13/+24
|
* opt: Remove duplicate assignment in canonicalize_not()Tavian Barnes2024-10-041-1/+0
|
* color: Fix an assertion failure with embedded NUL bytesTavian Barnes2024-10-023-0/+42
| | | | | | | | | | | | | Leading NUL bytes (e.g. `*\0.gz=...`) could cause us to insert a non-prefix-free set of strings into the case-insensitive extension trie, which would lead to crashes like bfs: trie_split@src/trie.c:538: Assertion failed: `key_nibble != rep_nibble` and OOB accesses to trie leaf keys. Fix it by ignoring those extensions, since filenames cannot contain NUL bytes. Fixes: 08030aea ("color: Delay the case_sensitive decision")
* Write @arg instead of @param arg in doc commentsTavian Barnes2024-10-0127-367/+367
|
* ci: Group distcheck messagesTavian Barnes2024-10-011-0/+2
|
* build: Add -Wundef-prefix=BFS_Tavian Barnes2024-10-014-0/+22
|
* list: Make SLIST_REMOVE() more type-safeTavian Barnes2024-09-301-25/+20
| | | | | | This avoids what might be a strict aliasing violation in some models. Link: https://github.com/llvm/llvm-project/pull/108385#issuecomment-2352938645
* Fix spellingTavian Barnes2024-09-2315-17/+17
|
* list: New drain_slist() macroTavian Barnes2024-09-194-39/+49
|
* build/prelude: Remove vestigal OBJS definitionTavian Barnes2024-09-181-11/+0
|
* Release 4.0.24.0.2Tavian Barnes2024-09-173-3/+37
|
* opt: #include "xspawn.h" before #ifdef POSIX_SPAWN_SETRLIMITTavian Barnes2024-09-171-0/+1
| | | | Fixes: 65a7814 ("opt: Don't raise RLIMIT_NOFILE if it would prevent using posix_spawn()")
* opt: Fix an invalid assertion in sink_not_comma()Tavian Barnes2024-09-173-4/+39
| | | | | | | When optimizing -not \( -a , -b \), the child is a comma expression, not the parent. Fixes: 4a36bb9 ("expr: Make expressions variadic")