From 065756bd0d540b654682bdb042bb434387e6f3ed Mon Sep 17 00:00:00 2001 From: Tomas Farago Date: Fri, 17 Dec 2021 17:42:40 +0100 Subject: read: check sizes on get_meta --- src/ufo-read-task.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/ufo-read-task.c b/src/ufo-read-task.c index f4818e0..5aeb731 100644 --- a/src/ufo-read-task.c +++ b/src/ufo-read-task.c @@ -278,6 +278,22 @@ ufo_read_task_get_requisition (UfoTask *task, if (!ufo_reader_get_meta (priv->reader, requisition, &num_images, &priv->depth, error)) return; + if (priv->roi_y >= requisition->dims[1]) { + g_warning ("read: vertical ROI start %i >= height %zu", + priv->roi_y, requisition->dims[1]); + priv->roi_y = 0; + } + + if (!priv->roi_height) { + priv->roi_height = requisition->dims[1] - priv->roi_y; + } + else { + if (priv->roi_y + priv->roi_height > requisition->dims[1]) { + g_warning ("read: vertical ROI height %i >= height %zu", + priv->roi_height, requisition->dims[1]); + priv->roi_height = requisition->dims[1] - priv->roi_y; + } + } if (priv->image_start >= num_images) { priv->image_start -= num_images; } else { @@ -295,23 +311,6 @@ ufo_read_task_get_requisition (UfoTask *task, */ priv->depth = UFO_BUFFER_DEPTH_32F; - if (priv->roi_y >= requisition->dims[1]) { - g_warning ("read: vertical ROI start %i >= height %zu", - priv->roi_y, requisition->dims[1]); - priv->roi_y = 0; - } - - if (!priv->roi_height) { - priv->roi_height = requisition->dims[1] - priv->roi_y; - } - else { - if (priv->roi_y + priv->roi_height > requisition->dims[1]) { - g_warning ("read: vertical ROI height %i >= height %zu", - priv->roi_height, requisition->dims[1]); - priv->roi_height = requisition->dims[1] - priv->roi_y; - } - } - /* update height for reduced vertical ROI and allow things like roi_height=1 * and roi_step=20 */ requisition->dims[1] = (priv->roi_height - 1) / priv->roi_step + 1; -- cgit v1.2.1