From 7dd5b2002abf516ebdf92696c57a9a7692c166e9 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Tue, 20 Mar 2012 23:07:11 +0000 Subject: geometrictransform: Prevent access to the transform map when it is null Check if the map doesn't exist when receiving a new caps and create a new one. This prevents that the transform functions try to access the map when it doesn't exist. diff --git a/gst/geometrictransform/gstgeometrictransform.c b/gst/geometrictransform/gstgeometrictransform.c index be651a4..a1ec3ab 100644 --- a/gst/geometrictransform/gstgeometrictransform.c +++ b/gst/geometrictransform/gstgeometrictransform.c @@ -178,8 +178,8 @@ gst_geometric_transform_set_caps (GstBaseTransform * btrans, GstCaps * incaps, /* regenerate the map */ GST_OBJECT_LOCK (gt); - if (old_width == 0 || old_height == 0 || gt->width != old_width || - gt->height != old_height) { + if (gt->map == NULL || old_width == 0 || old_height == 0 + || gt->width != old_width || gt->height != old_height) { if (klass->prepare_func) if (!klass->prepare_func (gt)) { GST_OBJECT_UNLOCK (gt); @@ -352,6 +352,9 @@ gst_geometric_transform_stop (GstBaseTransform * trans) { GstGeometricTransform *gt = GST_GEOMETRIC_TRANSFORM_CAST (trans); + gt->width = 0; + gt->height = 0; + g_free (gt->map); gt->map = NULL; -- cgit v0.9.0.2-2-gbebe