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 2eeb5e480cf8a8f6607f4d1a38dd7d7978ff4ef9

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 15:02
Parent(s): 1947271245e5f1a0b9eaafe986570b994e640520
Signing key: 99DC5E4DB05F6BE2
Tree: 294dee99b58aa87807d337ea58e0d100ec8454f4
File Lines added Lines deleted
ChangeLog 3 0
src/vifm.c 4 0
File ChangeLog changed (mode: 100644) (index f8d33bdc7..4ddce4fda)
41 41 Fixed unsafe IPC pipe reuse (CVE-2026-110237). Thanks to Andrew Savchenko Fixed unsafe IPC pipe reuse (CVE-2026-110237). Thanks to Andrew Savchenko
42 42 and Salvatore Bonaccorso (a.k.a. carnil). and Salvatore Bonaccorso (a.k.a. carnil).
43 43
44 Fixed cleaning up IPC pipe file on exiting after handling `--remote` or
45 `--remote-expr`.
46
44 47 0.14.3 to 0.14.4 (2026-05-31) 0.14.3 to 0.14.4 (2026-05-31)
45 48
46 49 Added example of handling .deb-files to sample vifmrc. Patch by Kirill Added example of handling .deb-files to sample vifmrc. Patch by Kirill
File src/vifm.c changed (mode: 100644) (index 20847facf..ecb48b383)
... ... vifm_main(int argc, char *argv[])
208 208 fputs("Failed to initialize IPC unit", stderr); fputs("Failed to initialize IPC unit", stderr);
209 209 return -1; return -1;
210 210 } }
211 /* This is temporarily assigned to make vifm_exit() clean up the IPC when the
212 * exit happens during argument parsing. */
213 curr_stats.ipc = ipc;
211 214 args_process(&vifm_args, AS_IPC, ipc); args_process(&vifm_args, AS_IPC, ipc);
215 curr_stats.ipc = NULL;
212 216
213 217 cfg_init(); cfg_init();
214 218 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