From 900d0267d511e9553eec44d948d7e33ead7dc903 Mon Sep 17 00:00:00 2001 From: Vineeth T M Date: Thu, 23 Oct 2014 14:38:07 +0530 Subject: [PATCH] basetextoverlay: segfault when xpos >= video size When the xpos is given as greater than or equal to the video size, we get a segfault, due to improper condition. Hence adding proper conditions. https://bugzilla.gnome.org/show_bug.cgi?id=738984 --- ext/pango/gstbasetextoverlay.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c index 7d1f05e8c6..0bcbba0c60 100644 --- a/ext/pango/gstbasetextoverlay.c +++ b/ext/pango/gstbasetextoverlay.c @@ -1349,7 +1349,7 @@ gst_base_text_overlay_get_pos (GstBaseTextOverlay * overlay, gint width, height; GstBaseTextOverlayVAlign valign; GstBaseTextOverlayHAlign halign; - + *ypos = 0; width = overlay->image_width; height = overlay->image_height; @@ -1378,8 +1378,9 @@ gst_base_text_overlay_get_pos (GstBaseTextOverlay * overlay, *xpos = 0; } *xpos += overlay->deltax; - if (*xpos > overlay->width) { + if (*xpos > overlay->width || *xpos < 0) { /* Clip text if out of frame */ + *xpos = 0; overlay->silent = TRUE; } else { if (overlay->use_vertical_render) @@ -1409,8 +1410,9 @@ gst_base_text_overlay_get_pos (GstBaseTextOverlay * overlay, break; } *ypos += overlay->deltay; - if (*ypos > overlay->height) { + if (*ypos > overlay->height || *ypos < 0) { /* Clip text if out of frame */ + *ypos = 0; overlay->silent = TRUE; } }