Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-11-29 21:23:43 +0300
committerJacques Lucke <jacques@blender.org>2021-11-29 21:23:43 +0300
commite7ae9f493aaa004caf3627489752139f177a807b (patch)
tree0877ae732204c3b6f5d5e9aa630340bd29087a1b /source
parentaa7051c8f21a6b7e2b413b40317502e69764fa05 (diff)
Fix T93310: crash due to broken image paths
The crash was caused by allocating an uninitialized amount of memory. This fix initializes a bunch of variables that could cause the error. It should be possible to also fix this in the function that actually uses the uninitialized memory, but that could cause unknown consequences that are a bit too risky for 3.0. Just initializing some variables should be safe though. For more details see D13369. Differential Revision: https://developer.blender.org/D13369
Diffstat (limited to 'source')
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.cc2
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MathBaseOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_MixOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_PlaneTrackOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_RotateOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_ScaleOperation.cc4
-rw-r--r--source/blender/compositor/operations/COM_SplitOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_TransformOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_TransformOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_TranslateOperation.cc2
-rw-r--r--source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cc4
13 files changed, 18 insertions, 18 deletions
diff --git a/source/blender/compositor/intern/COM_NodeOperation.cc b/source/blender/compositor/intern/COM_NodeOperation.cc
index 8a7ae1f4fcb..3050d82bf62 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.cc
+++ b/source/blender/compositor/intern/COM_NodeOperation.cc
@@ -150,7 +150,7 @@ void NodeOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
modify_determined_canvas_fn_(r_area);
}
- rcti unused_area;
+ rcti unused_area = COM_AREA_NONE;
const rcti &local_preferred_area = r_area;
for (unsigned int index = 0; index < inputs_.size(); index++) {
if (index == used_canvas_index) {
diff --git a/source/blender/compositor/intern/COM_NodeOperation.h b/source/blender/compositor/intern/COM_NodeOperation.h
index 627fffb1ec7..e969d836464 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.h
+++ b/source/blender/compositor/intern/COM_NodeOperation.h
@@ -351,7 +351,7 @@ class NodeOperation {
*/
eExecutionModel execution_model_;
- rcti canvas_;
+ rcti canvas_ = COM_AREA_NONE;
/**
* Flags how to evaluate this operation.
diff --git a/source/blender/compositor/operations/COM_MathBaseOperation.cc b/source/blender/compositor/operations/COM_MathBaseOperation.cc
index 86993ffe887..1a4684ae3f0 100644
--- a/source/blender/compositor/operations/COM_MathBaseOperation.cc
+++ b/source/blender/compositor/operations/COM_MathBaseOperation.cc
@@ -52,7 +52,7 @@ void MathBaseOperation::deinit_execution()
void MathBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
{
NodeOperationInput *socket;
- rcti temp_area;
+ rcti temp_area = COM_AREA_NONE;
socket = this->get_input_socket(0);
const bool determined = socket->determine_canvas(COM_AREA_NONE, temp_area);
if (determined) {
diff --git a/source/blender/compositor/operations/COM_MixOperation.cc b/source/blender/compositor/operations/COM_MixOperation.cc
index 09bbb633459..edae4454b13 100644
--- a/source/blender/compositor/operations/COM_MixOperation.cc
+++ b/source/blender/compositor/operations/COM_MixOperation.cc
@@ -70,7 +70,7 @@ void MixBaseOperation::execute_pixel_sampled(float output[4],
void MixBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
{
NodeOperationInput *socket;
- rcti temp_area;
+ rcti temp_area = COM_AREA_NONE;
socket = this->get_input_socket(1);
bool determined = socket->determine_canvas(COM_AREA_NONE, temp_area);
diff --git a/source/blender/compositor/operations/COM_PlaneTrackOperation.h b/source/blender/compositor/operations/COM_PlaneTrackOperation.h
index 4c584ca43f4..22ece04b900 100644
--- a/source/blender/compositor/operations/COM_PlaneTrackOperation.h
+++ b/source/blender/compositor/operations/COM_PlaneTrackOperation.h
@@ -81,7 +81,7 @@ class PlaneTrackMaskOperation : public PlaneDistortMaskOperation, public PlaneTr
{
PlaneTrackCommon::determine_canvas(preferred_area, r_area);
- rcti unused;
+ rcti unused = COM_AREA_NONE;
rcti &preferred = r_area;
NodeOperation::determine_canvas(preferred, unused);
}
@@ -102,7 +102,7 @@ class PlaneTrackWarpImageOperation : public PlaneDistortWarpImageOperation,
{
PlaneTrackCommon::determine_canvas(preferred_area, r_area);
- rcti unused;
+ rcti unused = COM_AREA_NONE;
rcti &preferred = r_area;
NodeOperation::determine_canvas(preferred, unused);
}
diff --git a/source/blender/compositor/operations/COM_RotateOperation.cc b/source/blender/compositor/operations/COM_RotateOperation.cc
index 8129516f81c..145a2f9c9d0 100644
--- a/source/blender/compositor/operations/COM_RotateOperation.cc
+++ b/source/blender/compositor/operations/COM_RotateOperation.cc
@@ -227,7 +227,7 @@ void RotateOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
get_input_socket(IMAGE_INPUT_INDEX)->determine_canvas(preferred_area, r_area);
if (image_determined) {
rcti input_canvas = r_area;
- rcti unused;
+ rcti unused = COM_AREA_NONE;
get_input_socket(DEGREE_INPUT_INDEX)->determine_canvas(input_canvas, unused);
ensure_degree();
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.cc b/source/blender/compositor/operations/COM_ScaleOperation.cc
index 350934b0d3b..5a351055241 100644
--- a/source/blender/compositor/operations/COM_ScaleOperation.cc
+++ b/source/blender/compositor/operations/COM_ScaleOperation.cc
@@ -223,7 +223,7 @@ void ScaleOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
get_input_socket(IMAGE_INPUT_INDEX)->determine_canvas(preferred_area, r_area);
if (image_determined) {
rcti image_canvas = r_area;
- rcti unused;
+ rcti unused = COM_AREA_NONE;
NodeOperationInput *x_socket = get_input_socket(X_INPUT_INDEX);
NodeOperationInput *y_socket = get_input_socket(Y_INPUT_INDEX);
x_socket->determine_canvas(image_canvas, unused);
@@ -503,7 +503,7 @@ void ScaleFixedSizeOperation::determine_canvas(const rcti &preferred_area, rcti
rcti local_preferred = preferred_area;
local_preferred.xmax = local_preferred.xmin + new_width_;
local_preferred.ymax = local_preferred.ymin + new_height_;
- rcti input_canvas;
+ rcti input_canvas = COM_AREA_NONE;
const bool input_determined = get_input_socket(0)->determine_canvas(local_preferred,
input_canvas);
if (input_determined) {
diff --git a/source/blender/compositor/operations/COM_SplitOperation.cc b/source/blender/compositor/operations/COM_SplitOperation.cc
index e98c5c986f5..39d097b02e1 100644
--- a/source/blender/compositor/operations/COM_SplitOperation.cc
+++ b/source/blender/compositor/operations/COM_SplitOperation.cc
@@ -60,7 +60,7 @@ void SplitOperation::execute_pixel_sampled(float output[4],
void SplitOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
{
- rcti unused_area;
+ rcti unused_area = COM_AREA_NONE;
const bool determined = this->get_input_socket(0)->determine_canvas(COM_AREA_NONE, unused_area);
this->set_canvas_input_index(determined ? 0 : 1);
diff --git a/source/blender/compositor/operations/COM_TextureOperation.cc b/source/blender/compositor/operations/COM_TextureOperation.cc
index 2ed83e87569..f5d47478a8d 100644
--- a/source/blender/compositor/operations/COM_TextureOperation.cc
+++ b/source/blender/compositor/operations/COM_TextureOperation.cc
@@ -80,7 +80,7 @@ void TextureBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_
if (execution_model_ == eExecutionModel::FullFrame) {
/* Determine inputs. */
- rcti temp;
+ rcti temp = COM_AREA_NONE;
NodeOperation::determine_canvas(r_area, temp);
}
}
diff --git a/source/blender/compositor/operations/COM_TransformOperation.cc b/source/blender/compositor/operations/COM_TransformOperation.cc
index be9bb32e7f0..5b8cd35cb26 100644
--- a/source/blender/compositor/operations/COM_TransformOperation.cc
+++ b/source/blender/compositor/operations/COM_TransformOperation.cc
@@ -126,7 +126,7 @@ void TransformOperation::determine_canvas(const rcti &preferred_area, rcti &r_ar
get_input_socket(IMAGE_INPUT_INDEX)->determine_canvas(preferred_area, r_area);
if (image_determined) {
rcti image_canvas = r_area;
- rcti unused;
+ rcti unused = COM_AREA_NONE;
get_input_socket(X_INPUT_INDEX)->determine_canvas(image_canvas, unused);
get_input_socket(Y_INPUT_INDEX)->determine_canvas(image_canvas, unused);
get_input_socket(DEGREE_INPUT_INDEX)->determine_canvas(image_canvas, unused);
diff --git a/source/blender/compositor/operations/COM_TransformOperation.h b/source/blender/compositor/operations/COM_TransformOperation.h
index 3c5584a1bea..5c646b215f2 100644
--- a/source/blender/compositor/operations/COM_TransformOperation.h
+++ b/source/blender/compositor/operations/COM_TransformOperation.h
@@ -35,9 +35,9 @@ class TransformOperation : public MultiThreadedOperation {
int translate_x_;
int translate_y_;
float scale_;
- rcti scale_canvas_;
- rcti rotate_canvas_;
- rcti translate_canvas_;
+ rcti scale_canvas_ = COM_AREA_NONE;
+ rcti rotate_canvas_ = COM_AREA_NONE;
+ rcti translate_canvas_ = COM_AREA_NONE;
/* Set variables. */
PixelSampler sampler_;
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.cc b/source/blender/compositor/operations/COM_TranslateOperation.cc
index 89c7468a67c..d3c87b09fb7 100644
--- a/source/blender/compositor/operations/COM_TranslateOperation.cc
+++ b/source/blender/compositor/operations/COM_TranslateOperation.cc
@@ -158,7 +158,7 @@ void TranslateCanvasOperation::determine_canvas(const rcti &preferred_area, rcti
if (determined) {
NodeOperationInput *x_socket = get_input_socket(X_INPUT_INDEX);
NodeOperationInput *y_socket = get_input_socket(Y_INPUT_INDEX);
- rcti unused;
+ rcti unused = COM_AREA_NONE;
x_socket->determine_canvas(r_area, unused);
y_socket->determine_canvas(r_area, unused);
diff --git a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cc b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cc
index 891518d53bf..86bc6d0041a 100644
--- a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cc
+++ b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cc
@@ -69,7 +69,7 @@ void *VariableSizeBokehBlurOperation::initialize_tile_data(rcti *rect)
data->bokeh = (MemoryBuffer *)input_bokeh_program_->initialize_tile_data(rect);
data->size = (MemoryBuffer *)input_size_program_->initialize_tile_data(rect);
- rcti rect2;
+ rcti rect2 = COM_AREA_NONE;
this->determine_depending_area_of_interest(
rect, (ReadBufferOperation *)input_size_program_, &rect2);
@@ -398,7 +398,7 @@ void VariableSizeBokehBlurOperation::update_memory_buffer_partial(MemoryBuffer *
p.image_width = this->get_width();
p.image_height = this->get_height();
- rcti scalar_area;
+ rcti scalar_area = COM_AREA_NONE;
this->get_area_of_interest(SIZE_INPUT_INDEX, area, scalar_area);
BLI_rcti_isect(&scalar_area, &p.size_input->get_rect(), &scalar_area);
const float max_size = p.size_input->get_max_value(scalar_area);