Amavis i perl

Radoslaw Zielinski radek w karnet.pl
Śro, 4 Wrz 2002, 15:53:03 CEST


[[ Stacho Pal <stacho w venco.com.pl> ]]:
> (host host.domena.com.pl[1.1.1.1] said: Insecure dependency in utime 
> while running with -T switch at /usr/lib/perl5/site_perl/Archive/Zip.pm 
> line 1496. 451 qq temporary problem (#4.3.0))

Widocznie Archive::Zip nie jest przystosowany do -T.  Chociaż...
Funkcja utime() nie powinna chyba sprawiać problemu...

> Da się temu jakoś zaradzić?

Na trzy sposoby:

1. Wyłączając -T w wywołaniu amavisa (nie wiem, czy sam amavis jest
napisany w Perlu, czy tylko wywołuje jakiś program...).

2. Pisząc do autora, żeby poprawił.

3. Nakładając tego (koszernego) patcha:

--- lib/Archive/Zip.pm  Wed Aug 21 22:50:59 2002
+++ Zip.pm      Wed Sep  4 15:47:15 2002
@@ -1195,6 +1195,12 @@
                'uncompressedSize'         => 0,
                @_
        };
+
+       # untainting
+       $self->{lastModFileDateTime} =~ /(\d+)/
+        ? ($self->{lastModFileDateTime} = $1)
+        : die "$self->{lastModFileDateTime} isn't numeric\n";
+
        bless( $self, $class );
        $self->unixFileAttributes( $self->DEFAULT_FILE_PERMISSIONS );
        return $self;

Ten też może być potrzebny, chociaż jeśli będzie, wina leży po stronie
amavisa -- zmienna $name pochodzi z programou wywołującego (czyli patch
niekoszerny):

--- lib/Archive/Zip.pm  Wed Aug 21 22:50:59 2002
+++ Zip.pm      Wed Sep  4 15:50:19 2002
@@ -1493,6 +1493,10 @@
        return _ioError("Can't open file $name for write") unless $status;
        my $retval = $self->extractToFileHandle($fh);
        $fh->close();
+
+       # silly untaint trick, needed if running with -T
+       $name =~ /^(.+)$/ && $name = $1;
+
        utime( $self->lastModTime(), $self->lastModTime(), $name );
        return $retval;
 }


Żaden porządny rabin nie zaaprobuje sposobów 1. i 3.

ps.  Poprawki ,,na czuja'', nie testowane.

-- 
Radosław Zieliński <radek w karnet.pl>
[ GPG key: http://radek.karnet.pl/ ]

-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: nie znany
Type: application/pgp-signature
Size: 189 bytes
Desc: nie znany
Url : /mailman/pipermail/pld-devel-pl/attachments/20040626/89a6ce16/attachment.bin


Więcej informacji o liście dyskusyjnej pld-devel-pl