58e0ca99a98ef4b39f359aecd8fb9a9aa2194dd7
Image operation's get_im_buf() function was not thread-safe: - It had TOCTOU issue around calculating multi-layer indices and requesting to load the image buffer. - It accessed render result, render layer and pass pointers without any thread guards. This change moves all the logic needed to access the image buffer into a single function with proper guards around the access. The result is user-counted, so it is usable in a thread even if another thread modifies the image. The is still potential TOCTOU in the compositor since the image is acquired twice: once from init_execution(), and once from the determine_canvas(). It could cause issues if image resolution is changed between these calls. It is still to be looked into. Ref #118337, #121761
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
