The following commit has been merged in the master branch:
commit 93f179a39dfd081e2a50dd258a322025004f6023
Author: Raphaël Hertzog <[email protected]>
Date: Fri Feb 19 19:32:33 2010 +0100
Dpkg::Compression::FileHandle: fix behaviour when the file is not open
The syscall-like interface should not error out when the file has not been
opened, it must simply return failure codes.
diff --git a/scripts/Dpkg/Compression/FileHandle.pm
b/scripts/Dpkg/Compression/FileHandle.pm
index fcf5005..658a9f7 100644
--- a/scripts/Dpkg/Compression/FileHandle.pm
+++ b/scripts/Dpkg/Compression/FileHandle.pm
@@ -212,34 +212,43 @@ sub OPEN {
sub CLOSE {
my ($self) = shift;
my $ret = 1;
- $ret = *$self->{'file'}->close(@_) if *$self->{'file'}->opened();
+ if (defined *$self->{'file'}) {
+ $ret = *$self->{'file'}->close(@_) if *$self->{'file'}->opened();
+ } else {
+ $ret = 0;
+ }
$self->cleanup();
return $ret;
}
sub FILENO {
my ($self) = shift;
- return *$self->{"file"}->fileno(@_);
+ return *$self->{"file"}->fileno(@_) if defined *$self->{"file"};
+ return undef;
}
sub EOF {
my ($self) = shift;
- return *$self->{"file"}->eof(@_);
+ return *$self->{"file"}->eof(@_) if defined *$self->{"file"};
+ return 1;
}
sub SEEK {
my ($self) = shift;
- return *$self->{"file"}->seek(@_);
+ return *$self->{"file"}->seek(@_) if defined *$self->{"file"};
+ return 0;
}
sub TELL {
my ($self) = shift;
- return *$self->{"file"}->tell(@_);
+ return *$self->{"file"}->tell(@_) if defined *$self->{"file"};
+ return -1;
}
sub BINMODE {
my ($self) = shift;
- return *$self->{"file"}->binmode(@_);
+ return *$self->{"file"}->binmode(@_) if defined *$self->{"file"};
+ return undef;
}
##
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]