Fix info crashes when resizing window
This commit is contained in:
parent
cfde360d9b
commit
520d30f387
58
texinfo-4.11-res_win_segfault.patch
Normal file
58
texinfo-4.11-res_win_segfault.patch
Normal file
@ -0,0 +1,58 @@
|
||||
--- 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: texinfo-4.11-res_win_segfault.patch,v 1.1 2007/11/13 11:27:40 vcrhonek Exp $
|
||||
+ $Id: texinfo-4.11-res_win_segfault.patch,v 1.1 2007/11/13 11:27:40 vcrhonek 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: texinfo-4.11-res_win_segfault.patch,v 1.1 2007/11/13 11:27:40 vcrhonek Exp $
|
||||
+ $Id: texinfo-4.11-res_win_segfault.patch,v 1.1 2007/11/13 11:27:40 vcrhonek 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
|
@ -1,7 +1,7 @@
|
||||
Summary: Tools needed to create Texinfo format documentation files
|
||||
Name: texinfo
|
||||
Version: 4.11
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPLv3
|
||||
Group: Applications/Publishing
|
||||
Url: http://www.gnu.org/software/texinfo/
|
||||
@ -9,6 +9,7 @@ Source0: ftp://ftp.gnu.org/gnu/texinfo/texinfo-%{version}.tar.bz2
|
||||
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 @@ for printing using TeX.
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .zlib
|
||||
%patch1 -p1 -b .res_win_segfault
|
||||
|
||||
%build
|
||||
|
||||
@ -137,6 +139,10 @@ fi
|
||||
%{_mandir}/man1/texi2pdf.1*
|
||||
|
||||
%changelog
|
||||
* Tue Nov 13 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 4.11-2
|
||||
- Fix info crashes when resizing window
|
||||
Resolves: #243971
|
||||
|
||||
* Wed Sep 26 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 4.11-1
|
||||
- Rebase to upstream texinfo-4.11 (update zlib.patch, drop
|
||||
texindex.patch and 0xA0.patch -- both included in upstream)
|
||||
|
Loading…
Reference in New Issue
Block a user