rpms/texinfo/devel texinfo-4.11-res_win_segfault.patch, NONE, 1.1 texinfo.spec, 1.46, 1.47

Vitezslav Crhonek (vcrhonek) fedora-extras-commits at redhat.com
Tue Nov 13 10:52:02 UTC 2007


Author: vcrhonek

Update of /cvs/extras/rpms/texinfo/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1281

Modified Files:
	texinfo.spec 
Added Files:
	texinfo-4.11-res_win_segfault.patch 
Log Message:
Fix info crashes when resizing window

texinfo-4.11-res_win_segfault.patch:

--- NEW FILE texinfo-4.11-res_win_segfault.patch ---
--- texinfo-4.11/info/window.c_old	2007-07-01 23:20:31.000000000 +0200
+++ texinfo-4.11/info/window.c	2007-11-13 10:52:44.000000000 +0100
@@ -1,5 +1,5 @@
 /* window.c -- windows in Info.
-   $Id: window.c,v 1.7 2007/07/01 21:20:31 karl Exp $
+   $Id: window.c,v 1.8 2007/10/19 18:43:20 karl Exp $
 
    Copyright (C) 1993, 1997, 1998, 2001, 2002, 2003, 2004, 2007
    Free Software Foundation, Inc.
@@ -249,9 +249,22 @@
               break;
             }
           else
-            win= win->next;
+            win = win->next;
         }
     }
+
+  /* One more loop.  If any heights or widths have become negative,
+     set them to zero.  This can apparently happen with resizing down to
+     very small sizes.  Sadly, it is not apparent to me where in the
+     above calculations it goes wrong.  */
+  for (win = windows; win; win = win->next)
+    {
+      if (win->height < 0)
+        win->height = 0;
+
+      if (win->width < 0)
+        win->width = 0;
+    }
 }
 
 /* Make a new window showing NODE, and return that window structure.
--- texinfo-4.11/info/display.c_old	2007-07-01 23:20:29.000000000 +0200
+++ texinfo-4.11/info/display.c	2007-11-13 10:53:58.000000000 +0100
@@ -1,5 +1,5 @@
 /* display.c -- How to display Info windows.
-   $Id: display.c,v 1.11 2007/07/01 21:20:29 karl Exp $
+   $Id: display.c,v 1.12 2007/10/19 18:43:20 karl Exp $
 
    Copyright (C) 1993, 1997, 2003, 2004, 2006, 2007
    Free Software Foundation, Inc.
@@ -136,8 +136,13 @@
   if (display_inhibited)
     display_was_interrupted_p = 1;
 
-  /* If the window has no height, or display is inhibited, quit now. */
-  if (!win->height || display_inhibited)
+  /* If the window has no height, or display is inhibited, quit now.
+     Strictly speaking, it should only be necessary to test if the
+     values are equal to zero, since window_new_screen_size should
+     ensure that the window height/width never becomes negative, but
+     since historically this has often been the culprit for crashes, do
+     our best to be doubly safe.  */
+  if (win->height <= 0 || win->width <= 0 || display_inhibited)
     return;
 
   /* If the window's first row doesn't appear in the_screen, then it


Index: texinfo.spec
===================================================================
RCS file: /cvs/extras/rpms/texinfo/devel/texinfo.spec,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- texinfo.spec	8 Nov 2007 15:02:01 -0000	1.46
+++ texinfo.spec	13 Nov 2007 10:51:28 -0000	1.47
@@ -9,6 +9,7 @@
 Source1: info-dir
 Source2: texi2pdf.man
 Patch0: texinfo-4.11-zlib.patch
+Patch1: texinfo-4.11-res_win_segfault.patch
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 Buildroot: %{_tmppath}/%{name}-%{version}-root
@@ -59,6 +60,7 @@
 %prep
 %setup -q
 %patch0 -p1 -b .zlib
+%patch1 -p1 -b .res_win_segfault
 
 %build
 
@@ -137,6 +139,10 @@
 %{_mandir}/man1/texi2pdf.1*
 
 %changelog
+* Tue Nov 13 2007 Vitezslav Crhonek <vcrhonek at redhat.com> - 4.11-3
+- Fix info crashes when resizing window
+- Resolves: #243971
+
 * Wed Nov  7 2007 Stepan Kasal <skasal at redhat.com> - 4.11-2
 - fix a typo in texinfo-tex summary
 - Resolves: #239216




More information about the fedora-extras-commits mailing list