On Mon, Nov 15, 2004 at 10:16:11AM +0000, Colin Watson wrote: > On Fri, Nov 12, 2004 at 09:32:25AM -0500, David F. Skoll wrote: > > This behaviour of MIME-tools (failing if an I/O operation fails) will > > *not* be changed; I've had discussions about this before. > > > > Silently permittion I/O operations to fail can be a security risk. It's > > up to users of MIME-tools to ensure that their underlying file handles > > support the flush() method correctly. > > We use variously IO::Scalar and IO::Lines, both of which have a flush() > method (the latter via IO::ScalarArray), so I'm slightly puzzled. Bill, > I don't suppose you could do me a favour and investigate with 'perl -d' > to see exactly which MIME-tools call is failing? To summary: the short program bug.pl in attachement fail on the test email bug.mail also in attachement: %./bug.pl < bug.mail MIME::Parser: can't flush: at /usr/share/perl5/MIME/Parser.pm line 789, <> line 91. %cat bug.pl #! /usr/bin/perl -wT use strict; use MIME::Parser; use IO::Lines; my @mail=(); push @mail,$_ while(<>); my $parser = new MIME::Parser; $parser->tmp_to_core(1); $parser->output_to_core(1); my $entity = $parser->parse( new IO::Lines \@mail ); So, is bug.pl buggy ? If yes, how should it be fixed ? Thanks, Bill.
Attachment:
bug.pl
Description: Perl program
Received: (at 89) by pari.math.u-bordeaux.fr; 7 Nov 2004 18:27:00 +0000 From allomber@math.u-bordeaux.fr Sun Nov 07 19:27:00 2004 Received: from lns-p19-5-82-65-20-77.adsl.proxad.net ([82.65.20.77] helo=yellowpig.yi.org ident=mail) by pari with esmtp (Exim 3.35 #1 (Debian)) id 1CQrki-0007fy-00 for <89@pari.math.u-bordeaux.fr>; Sun, 07 Nov 2004 19:27:00 +0100 Received: from bill by yellowpig.yi.org with local (Exim 3.35 #1 (Debian)) id 1CQrkf-0005uB-00; Sun, 07 Nov 2004 19:26:57 +0100 Date: Sun, 7 Nov 2004 19:26:57 +0100 To: igor@txc.com, 89@pari.math.u-bordeaux.fr Subject: Re: Bug#89: galoisinit() bug Message-ID: <20041107182657.GK7001@seventeen> References: <20041013002537.GB20438@txc.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="kkcDP0v44wDpNmbp" Content-Disposition: inline In-Reply-To: <20041013002537.GB20438@txc.com> User-Agent: Mutt/1.3.28i From: Bill Allombert <allomber@math.u-bordeaux.fr> --kkcDP0v44wDpNmbp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Oct 12, 2004 at 08:25:37PM -0400, Igor Schein wrote: > Package: pari > Version: 2.2.8 (development CHANGES-1.1028) > > I just wanted to enter this previously known bug into the database for > accounting purposes: > > ? galoisinit(x^4+272*x^3+40256*x^2+1740800*x+25397248) > *** galoisinit: prime too small in fixedfield. > ? galoisinit(x^4+884*x^3-1972*x^2-884*x+1) > *** galoisinit: prime too small in fixedfield. Hello Igor, after some investigations I found that: 1) There was a bug in the symmetric polynomials search algorithm. (It discarded some useful polynomials). 2) Karim convinced me that the problem does have a solution and give an algorithm to compute it. 3) Given the bug 1) a lot of code has an uselessly complicated interface. The attached patch fix 1) and fix your two examples above. I plan to fix 3) and implement a variant of Karim algorithm later on. I will let Karim decide whether this patch should be applied before 2.2.8 is released. Cheers, Bill --kkcDP0v44wDpNmbp Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch Index: src/basemath/galconj.c =================================================================== RCS file: /home/cvs/pari/src/basemath/galconj.c,v retrieving revision 1.146 diff -u -r1.146 galconj.c --- src/basemath/galconj.c 1 Nov 2004 17:39:41 -0000 1.146 +++ src/basemath/galconj.c 7 Nov 2004 18:15:18 -0000 @@ -1314,14 +1314,8 @@ deg[i]=0; for(n=1,i=1;i<lg(L);i++) { - long j; LN[n]=(long)fixedfieldnewtonsum(O,Ll,l,stoi(i)); - for(j=2;j<lg(LN[n]);j++) - if(cmpii(gmael(LN,n,j),gmael(LN,n,1))) - break; - if(j==lg(LN[n]) && j>2) - continue; - if (DEBUGLEVEL>=6) fprintferr("FixedField: LN[%d]=%Z\n",n,LN[n]); + if (DEBUGLEVEL>=6) fprintferr("FixedField: LN[%d]^%d=%Z \n",n,i,LN[n]); deg[n]=i; if (fixedfieldtests(LN,n)) { --kkcDP0v44wDpNmbp--