summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtktextview.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index 4c5f0d233..ad04480d4 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -1894,6 +1894,7 @@ gtk_text_view_queue_scroll (GtkTextView *text_view,
gdouble xalign,
gdouble yalign)
{
+ const char *mark_name;
GtkTextIter iter;
GtkTextPendingScroll *scroll;
@@ -1906,6 +1907,12 @@ gtk_text_view_queue_scroll (GtkTextView *text_view,
scroll->xalign = xalign;
scroll->yalign = yalign;
+ /* We need to verify that the buffer contains the mark, otherwise this
+ * can lead to data structure corruption later on.
+ */
+ mark_name = gtk_text_mark_get_name (mark);
+ g_return_if_fail (gtk_text_buffer_get_mark (get_buffer (text_view), mark_name));
+
gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &iter, mark);
scroll->mark = gtk_text_buffer_create_mark (get_buffer (text_view),