From: Ben Pfaff Date: Tue, 8 Oct 2013 03:40:24 +0000 (-0700) Subject: comments-dialog: Avoid segfault in comments dialog pasting very long text. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df11254fddfd186f3d947c9891ab85eca20739ab;p=pspp comments-dialog: Avoid segfault in comments dialog pasting very long text. The code in wrap_line() used a GtkTextIter after an insertion invalidated it. In some setups, with a sufficiently long pasted text, this caused a Gtk-WARNING and a subsequent segfault. This commit fixes the problem by removing the offending code. In my testing, this didn't cause a UI regression. Reported by Bastián Díaz in the thread starting at http://lists.gnu.org/archive/html/bug-gnu-pspp/2013-10/msg00005.html --- diff --git a/src/ui/gui/comments-dialog.c b/src/ui/gui/comments-dialog.c index 1d31777379..ba312ff01f 100644 --- a/src/ui/gui/comments-dialog.c +++ b/src/ui/gui/comments-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2007, 2010, 2011, 2012 Free Software Foundation + Copyright (C) 2007, 2010, 2011, 2012, 2013 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -74,16 +74,10 @@ wrap_line (GtkTextBuffer *buffer, if ( chars > DOC_LINE_LENGTH ) { GtkTextIter line_fold = *iter; - GtkTextIter cursor; gtk_text_iter_set_line_offset (&line_fold, DOC_LINE_LENGTH); gtk_text_buffer_insert (buffer, &line_fold, "\r\n", 2); - - cursor = line_fold; - gtk_text_iter_forward_to_line_end (&cursor); - - gtk_text_buffer_place_cursor (buffer, &cursor); } }