xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit 5a9f90613fb6bc8ec23efc73b29516496c48e8f0

Clean up IPC pipe file after handling `--remote*`
Parsing correctly exits using vifm_exit(), but it frees `curr_stats.ipc`
which was NULL.
Author: xaizek
Author date (UTC): 2026-10-17 14:39
Committer name: xaizek
Committer date (UTC): 2026-10-17 14:50
Parent(s): 031ea43b6f1246a25781d73a5c6a9a58cbe5f74e
Signing key: 99DC5E4DB05F6BE2
Tree: fdf0d85ed93da1e34f1c9912135a9a2382053336
File Lines added Lines deleted
ChangeLog 3 0
src/vifm.c 4 0
File ChangeLog changed (mode: 100644) (index 3c3b6a540..b60ddc69c)
328 328 Fixed unsafe IPC pipe reuse (CVE-2026-110237). Thanks to Andrew Savchenko Fixed unsafe IPC pipe reuse (CVE-2026-110237). Thanks to Andrew Savchenko
329 329 and Salvatore Bonaccorso (a.k.a. carnil). and Salvatore Bonaccorso (a.k.a. carnil).
330 330
331 Fixed cleaning up IPC pipe file on exiting after handling `--remote` or
332 `--remote-expr`.
333
331 334 0.14-beta to 0.14 (2025-02-08) 0.14-beta to 0.14 (2025-02-08)
332 335
333 336 Improved documentation on zh/zl menu keys a bit. Improved documentation on zh/zl menu keys a bit.
File src/vifm.c changed (mode: 100644) (index 458f7b335..67f3b3e0a)
... ... vifm_main(int argc, char *argv[])
209 209 fputs("Failed to initialize IPC unit", stderr); fputs("Failed to initialize IPC unit", stderr);
210 210 return -1; return -1;
211 211 } }
212 /* This is temporarily assigned to make vifm_exit() clean up the IPC when the
213 * exit happens during argument parsing. */
214 curr_stats.ipc = ipc;
212 215 args_process(&vifm_args, AS_IPC, ipc); args_process(&vifm_args, AS_IPC, ipc);
216 curr_stats.ipc = NULL;
213 217
214 218 cfg_init(); cfg_init();
215 219 init_filelists(); init_filelists();
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master