From 56e27b0546a358c237737cace96c59623a0a858e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 10 Oct 2011 19:41:33 +0100 Subject: [PATCH 1/2] utils: catch invalid instance sizes in gst_type_register_static_full() Add guards to catch overly large instance sizes. https://bugzilla.gnome.org/show_bug.cgi?id=660955 --- gst/gstutils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gst/gstutils.c b/gst/gstutils.c index 7a0360a293..d32bb5edc8 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -3900,6 +3900,9 @@ gst_type_register_static_full (GType parent_type, { GTypeInfo info; + g_return_val_if_fail (class_size <= G_MAXUINT16, G_TYPE_INVALID); + g_return_val_if_fail (instance_size <= G_MAXUINT16, G_TYPE_INVALID); + info.class_size = class_size; info.base_init = base_init; info.base_finalize = base_finalize; From cdd3c303f14d3b5df55bea2bfcc45b81bc88adb1 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 12 Oct 2011 17:17:09 +0200 Subject: [PATCH 2/2] basesrc: properly adjust start time When we do a non-flushing seek and closed the current segment, make sure that we open the next segment from where we closed. --- libs/gst/base/gstbasesrc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 5cd515eb42..1e23d5a163 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -1453,6 +1453,7 @@ gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock) gst_event_new_new_segment_full (TRUE, src->segment.rate, src->segment.applied_rate, src->segment.format, src->segment.start, src->segment.last_stop, src->segment.time); + seeksegment.start = src->segment.last_stop; gst_event_set_seqnum (src->priv->close_segment, seqnum); }