From f80e194549aa9dd3e447179e283969e5ef4715e5 Mon Sep 17 00:00:00 2001 From: gb Date: Thu, 18 Mar 2010 12:56:53 +0000 Subject: [PATCH] Improve gst_vaapi_image_new() sanity checks. --- gst-libs/gst/vaapi/gstvaapiimage.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gst-libs/gst/vaapi/gstvaapiimage.c b/gst-libs/gst/vaapi/gstvaapiimage.c index 4b0fd47..039f55f 100644 --- a/gst-libs/gst/vaapi/gstvaapiimage.c +++ b/gst-libs/gst/vaapi/gstvaapiimage.c @@ -373,6 +373,8 @@ gst_vaapi_image_new( guint height ) { + GstVaapiImage *image; + g_return_val_if_fail(GST_VAAPI_IS_DISPLAY(display), NULL); g_return_val_if_fail(width > 0, NULL); g_return_val_if_fail(height > 0, NULL); @@ -380,12 +382,22 @@ gst_vaapi_image_new( GST_DEBUG("format %" GST_FOURCC_FORMAT ", size %ux%u", GST_FOURCC_ARGS(format), width, height); - return g_object_new(GST_VAAPI_TYPE_IMAGE, - "display", display, - "format", format, - "width", width, - "height", height, - NULL); + image = g_object_new( + GST_VAAPI_TYPE_IMAGE, + "display", display, + "format", format, + "width", width, + "height", height, + NULL + ); + if (!image) + return NULL; + + if (!image->priv->is_constructed) { + g_object_unref(image); + return NULL; + } + return image; } VAImageID -- 2.7.4