Re: zlib breakage(was cvs commit: src/share/man/man4 ng_pptpgre.4)

2002-03-18 Thread Munehiro Matsuda

This problem also affects the ports/archivers/rpm, which dumps core 
while trying to install ports/emulators/linux_base.
If it's not fixed, we'd loose linux emulation and mose linux based
applications from 5-CURRENT-DP1.

I reported this problem last week with:
  Message-Id: [EMAIL PROTECTED]
  Subject: problem with libz 1.1.4 when installing linux_base ports
  Date: Sat, 16 Mar 2002 16:21:35 +0900

From: Bruce Evans [EMAIL PROTECTED]
Date: Mon, 18 Mar 2002 13:49:55 +1100 (EST)
::
::This bug affects everything that uses libz of course.  It also breaks
::zgrep.  Try cd /home/ncvs/C*/*logs; zgrep foo *.
::
::On Sun, 17 Mar 2002, Bruce Evans wrote:
::
:: On Sun, 17 Mar 2002, I wrote:
::
::  That may be, but ispell is not man's best friend:
:: 
::  $ man ispell
::  Segmentation fault (core dumped)
:: 
::  The bug seems to be in libz.  Upgrading to the previous version of libz
::  fixes it.
::
:: The following patch (obtained from the upgrade) fixes man ispell
:: (but may break libz).
::
:: %%%
:: Index: infcodes.c
:: ===
:: RCS file: /home/ncvs/src/lib/libz/infcodes.c,v
:: retrieving revision 1.3
:: diff -u -2 -r1.3 infcodes.c
:: --- infcodes.c  11 Mar 2002 22:36:26 -  1.3
:: +++ infcodes.c  17 Mar 2002 02:41:53 -
:: @@ -201,5 +201,5 @@
::  case COPY:  /* o: copying bytes in window, waiting for space */
::f = q - c-sub.copy.dist;
:: -  while (f  s-window) /* modulo window size-while instead */
:: +  if (f  s-window)/* modulo window size-while instead */
::  f += s-end - s-window;/* of if handles invalid distances */
::while (c-len)
:: %%%
::
:: The while loop caused some pointer to become invalid.  I think the bug
:: is really in gcc.  The register hildng 's' seemed to get clobbered to
:: (s-end - s-window) so 's' was invalid after 1 iteration.  With an
:: if instead of a while, gcc generates simpler code with line numbers
:: that are actually correct and without the register clobber.  Compiling
:: the unpatched version with -O0 also unbreaks man ispell.
::
:: Bruce
::
::Bruce
::
::
::To Unsubscribe: send mail to [EMAIL PROTECTED]
::with unsubscribe freebsd-current in the body of the message
::
::

Haro
=--
   _ _Munehiro (haro) Matsuda
 -|- /_\  |_|_|   Business Incubation Dept., Kubota Corp.
 /|\ |_|  |_|_|   1-3 Nihonbashi-Muromachi 3-Chome
  Chuo-ku Tokyo 103-8310, Japan
  Tel: +81-3-3245-3318  Fax: +81-3-3245-3315
  Email: [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



zlib breakage(was cvs commit: src/share/man/man4 ng_pptpgre.4)

2002-03-17 Thread Bruce Evans

This bug affects everything that uses libz of course.  It also breaks
zgrep.  Try cd /home/ncvs/C*/*logs; zgrep foo *.

On Sun, 17 Mar 2002, Bruce Evans wrote:

 On Sun, 17 Mar 2002, I wrote:

  That may be, but ispell is not man's best friend:
 
  $ man ispell
  Segmentation fault (core dumped)
 
  The bug seems to be in libz.  Upgrading to the previous version of libz
  fixes it.

 The following patch (obtained from the upgrade) fixes man ispell
 (but may break libz).

 %%%
 Index: infcodes.c
 ===
 RCS file: /home/ncvs/src/lib/libz/infcodes.c,v
 retrieving revision 1.3
 diff -u -2 -r1.3 infcodes.c
 --- infcodes.c11 Mar 2002 22:36:26 -  1.3
 +++ infcodes.c17 Mar 2002 02:41:53 -
 @@ -201,5 +201,5 @@
  case COPY:  /* o: copying bytes in window, waiting for space */
f = q - c-sub.copy.dist;
 -  while (f  s-window) /* modulo window size-while instead */
 +  if (f  s-window)/* modulo window size-while instead */
  f += s-end - s-window;/* of if handles invalid distances */
while (c-len)
 %%%

 The while loop caused some pointer to become invalid.  I think the bug
 is really in gcc.  The register hildng 's' seemed to get clobbered to
 (s-end - s-window) so 's' was invalid after 1 iteration.  With an
 if instead of a while, gcc generates simpler code with line numbers
 that are actually correct and without the register clobber.  Compiling
 the unpatched version with -O0 also unbreaks man ispell.

 Bruce

Bruce


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message