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