forwarded 351559 Thomas Ruedas <[EMAIL PROTECTED]> stop Dear Thomas,
I hope the address is OK. A user of texdoctk experienced a seg fault, when using it. The bug was tracked doen by Niko Tyni to the patch below. Thanks to Niko! The whole story seems to split off into three bugs: 1. texdoctk trys to use xwininfo, to determine the display resolution, which is not always present on a Debian system (1. bug, goes to the teTeX packager) 2. If xwininfo is not there, it uses buggy code to do that (patch below). It seems to use the variable $deffont, without making sure it is defined (as far as I understand - beat me if I'm wrong). 3. perl-tk does not throw an exception, but simply segfaults, when hitting the buggy code (this bug goes to perl-tk). Please evaluate the code in question and consider to apply it to texdoctk. Kind Regards, Hilmar Preuße ----- Forwarded message from Niko Tyni <[EMAIL PROTECTED]> ----- From: Niko Tyni <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Subject: Re: Bug#348513: Perl-tk segfault with texdoctk Date: Sun, 5 Feb 2006 20:32:20 +0200 Message-ID: <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> User-Agent: Mutt/1.4.1i On Fri, Feb 03, 2006 at 07:31:16PM +0100, Frank Küster wrote: > > Anyone have any ideas on how to fix the segfault? > > That goes to the perl people. Hi, first of all, the segfault manifests when xbase-clients is not installed. Specifically, texdoctk calls xwininfo to find out the display resolution. It then uses this info to configure a Tk::Button object with a suitable font. If xwininfo is not present, it falls back to $Qbut->configure(-font=>$deffont); (/usr/bin/texdoctk:1693) with $deffont undefined. The current version of perl-tk segfaults here. Even if there was no segfault, apparently texdoctk would benefit from xwininfo being present, and thus tetex-bin should at least Suggest xbase-clients. I'm cloning this as a minor bug against tetex-bin. The correct perl-tk behaviour is to throw an exception: font "" doesn't exist at /usr/lib/perl5/Tk/Widget.pm line 196. This is what the sarge version of perl-tk (1:800.025-2) does. So, even with a fixed perl-tk, texdoctk will exit with a fatal error when xwininfo is not present. I'm cloning this as a normal bug against tetex-bin, and including a suggested simple fix as the first attached patch. Now for the perl-tk segfault. A minimal testcase for it is: #!/usr/bin/perl use Tk; my $main = new MainWindow; my $cmdframe = $main->Frame; my $b = $cmdframe->Button(-font => undef); This segfaults for at least the Button, Radiobutton and Text widgets. After some gdb debugging, I came up with the second attached patch, which seems to fix this and reverts to the sarge behaviour. (patch has been taken oput be my, Hilmar) Cheers, -- Niko Tyni [EMAIL PROTECTED] --- /usr/bin/texdoctk 2006/02/05 17:08:01 1.1 +++ /usr/bin/texdoctk 2006/02/05 17:08:17 @@ -1690,7 +1690,7 @@ my @deffont=$Qbut->configure(-font); # ensure readability on high-res screens (suggested by R.Kotucha) $deffont='Helvetica -16 bold' if &x_resolution > 1200; - $Qbut->configure(-font=>$deffont); + $Qbut->configure(-font=>$deffont) if $deffont; $msgframe->Label(-text=>'FATAL ERROR', -font=>$deffont)->pack(-side=>'top', -fill=>'x'); # get size of message text ----- End forwarded message ----- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]