[tz] Bug#1067022: man2html: Segmentation fault with tzfile(5)

Alejandro Colomar alx at kernel.org
Sat Mar 16 23:06:38 UTC 2024


Package: man2html
Version: 1.6g-16
Severity: normal
Tags: upstream
X-Debbugs-Cc: Alejandro Colomar <alx at kernel.org>, Paul Eggert <eggert at cs.ucla.edu>, "G. Branden Robinson" <branden at debian.org>, linux-man at vger.kernel.org, groff at gnu.org, tz at iana.org

Dear Maintainer,

The page tzfile(5) from tzdb-2024a manages to consistently produce a
Segmentation fault with man2html(1).  Below is a reproducer:

	alx at debian:~/tmp$ wget https://data.iana.org/time-zones/releases/tzdb-2024a.tar.lz 2>/dev/null
	alx at debian:~/tmp$ tar xf tzdb-2024a.tar.lz 
	alx at debian:~/tmp$ man2html tzdb-2024a/tzfile.5
	Content-type: text/html; charset=UTF-8

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<HTML><HEAD><TITLE>Man page of tzfile</TITLE>
	</HEAD><BODY>
	<H1>tzfile</H1>
	Section: File Formats (5)<BR>Updated: <BR><A HREF="#index">Index</A>
	<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>

	<A NAME="lbAB"> </A>
	<H2>NAME</H2>

	tzfile - timezone information
	<A NAME="lbAC"> </A>
	<H2>DESCRIPTION</H2>









	The timezone information files used by
	<B><A HREF="/cgi-bin/man/man2html?3+tzset">tzset</A></B>(3)

	are typically found under a directory with a name like
	<I>/usr/share/zoneinfo</I>.

	These files use the format described in Internet RFC 8536.
	Each file is a sequence of 8-bit bytes.
	In a file, a binary integer is represented by a sequence of one or
	more bytes in network order (bigendian, or high-order byte first),
	with all bits significant,
	a signed binary integer is represented using two's complement,
	and a boolean is represented by a one-byte binary integer that is
	either 0 (false) or 1 (true).
	The format begins with a 44-byte header containing the following fields:
	Segmentation fault
	alx at debian:~/tmp$ dpkg -l | grep man2html
	ii  man2html                                       1.6g-16                                   amd64        browse man pages in your web browser
	ii  man2html-base                                  1.6g-16                                   amd64        convert man pages into HTML format

I've refreshed this page today, and the previous version I used didn't
have this crash.  Below is the part of the diff that I think is
responsible for the crash:

	diff --git a/man5/tzfile.5 b/man5/tzfile.5
	index 45afecc10..867348d67 100644
	--- a/man5/tzfile.5
	+++ b/man5/tzfile.5
	@@ -26,23 +26,24 @@ .SH DESCRIPTION
	 and a boolean is represented by a one-byte binary integer that is
	 either 0 (false) or 1 (true).
	 The format begins with a 44-byte header containing the following fields:
	-.IP * 2
	+.RS "\w'  'u"
	+.IP \(bu "\w'\(bu  'u"
	 The magic four-byte ASCII sequence
	 .q "TZif"
	 identifies the file as a timezone information file.

BTW, I noticed that the upstream homepage is dead:
<http://users.actrix.gen.nz/michael/vhman2html.html>.
Is this project defunct?

Have a lovely day!
Alex


-- System Information:
Debian Release: trixie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.8.0-rc7-alx-dirty (SMP w/24 CPU threads; PREEMPT)
Locale: LANG=C.utf8, LC_CTYPE=C.utf8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages man2html depends on:
ii  debconf [debconf-2.0]  1.5.86
ii  gawk                   1:5.2.1-2
ii  libc6                  2.37-15.1
ii  lynx                   2.9.0rel.0-2+b1
ii  man-db                 2.12.0-3
ii  man2html-base          1.6g-16
ii  sensible-utils         0.0.22

man2html recommends no packages.

Versions of packages man2html suggests:
ii  firefox-esr [www-browser]  115.8.0esr-1+b1
ii  lynx [www-browser]         2.9.0rel.0-2+b1
pn  swish++                    <none>
ii  w3m [www-browser]          0.5.3+git20230121-2+b3

-- debconf information:
  man2html/index_manpages: true


More information about the tz mailing list