0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00
mpv/video
nanahi 9a861c930b image_writer: fix TOCTOU in screenshot filename generation
The screenshot command is documented to not overwrite existing files.
However, there is a race window between the filename is generated with
gen_fname and when the file is open to write. Specifically, the
convert_image function in this window can be very time consuming
depending on video and screenshot image format and size. This results
in existing file being overwritten because the file writing functions
don't check for the existance of file.

Fix this be opening the file in exclusive mode. Add overwrite parameter to
write_image for other operations that are documented to overwrite existing
files, like screenshot-to-file. Note that for write_avif, checking
existance is used instead because avio_open does not support exclusive
open mode.
2024-03-19 19:30:27 +01:00
..
decode ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
filter vf_format: add hdr10plus sub-parameter to format video filter 2024-03-09 05:58:52 +00:00
out image_writer: fix TOCTOU in screenshot filename generation 2024-03-19 19:30:27 +01:00
csputils.c csputils: add missing PL_COLOR_SYSTEM names 2024-03-09 05:58:52 +00:00
csputils.h csputils: replace more primitives with pl_ 2024-01-22 14:54:55 +00:00
cuda.c cuda: move --cuda-device to cuda_opts group 2023-09-22 14:20:38 +00:00
d3d.c vo: add missing return variable assignment 2023-11-18 23:55:28 +00:00
d3d.h video: move d3d.c out of decode sub directory 2017-12-01 17:58:56 +01:00
drmprime.c various: drop unused #include "config.h" 2023-02-20 14:21:18 +00:00
fmt-conversion.c video: don't define IMGFMT_VULKAN conditionally 2024-02-26 17:37:20 +01:00
fmt-conversion.h video/fmt-conversion, img_format: change license to LGPL 2017-06-18 15:15:07 +02:00
hwdec.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
hwdec.h hwtransfer: use the right hardware config to find conversion targets 2023-08-26 10:07:55 -07:00
image_loader.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_loader.h x11: load icon differently 2017-07-01 15:56:12 +02:00
image_writer.c image_writer: fix TOCTOU in screenshot filename generation 2024-03-19 19:30:27 +01:00
image_writer.h image_writer: fix TOCTOU in screenshot filename generation 2024-03-19 19:30:27 +01:00
img_format.c csputils: replace mp_colorspace with pl_color_space 2024-01-22 14:54:55 +00:00
img_format.h video: don't define IMGFMT_VULKAN conditionally 2024-02-26 17:37:20 +01:00
mp_image_pool.c chmap: mp_image_pool: drop stale mentions of Libav in comments 2024-01-20 16:10:20 +00:00
mp_image_pool.h f_hwtransfer: disable vulkan multiplane images when uploading from cuda 2023-05-28 15:46:05 -07:00
mp_image.c video/image_writer: attach MDVC metadata and CLLI metadata 2024-03-19 09:49:04 +01:00
mp_image.h mp_image: add Dolby Vision metadata mapping 2024-03-09 05:58:52 +00:00
repack.c repack: add restrict qualifier to src/dst pointers 2024-03-19 13:04:05 +01:00
repack.h repack: add support for converting from/to float formats 2020-05-09 18:02:57 +02:00
sws_utils.c csputils: replace mp_chroma_location with pl_chroma_location 2024-01-22 14:54:55 +00:00
sws_utils.h sws_utils: work around libswscale corrupting memory yet again 2020-09-17 15:24:27 +02:00
vaapi.c various: avoid function pointer casts 2024-02-28 16:04:02 +00:00
vaapi.h csputils: replace mp_colorspace with pl_color_space 2024-01-22 14:54:55 +00:00
vdpau_functions.inc vo_vdpau: directly get surface size from surface for screenshots 2015-06-05 22:34:16 +02:00
vdpau_mixer.c mp_image: add mp_image_params_static_equal for finer comparision 2024-03-09 05:58:52 +00:00
vdpau_mixer.h options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00
vdpau.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
vdpau.h ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
zimg.c csputils: replace more primitives with pl_ 2024-01-22 14:54:55 +00:00
zimg.h options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00