comments-dialog: Avoid segfault in comments dialog pasting very long text. 20131008030504/pspp
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 8 Oct 2013 03:40:24 +0000 (20:40 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 8 Oct 2013 03:41:46 +0000 (20:41 -0700)
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

src/ui/gui/comments-dialog.c

index 1d31777379a0e3c7b4d3dbe951b44d60d4db4350..ba312ff01fd7c8d19d7f57f7b9c2beb9133acfc1 100644 (file)
@@ -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);
     }
 
 }