This patch fixes an issue that could cause edi_fetcher.pl to crash
if the EDI partner supplies a zero-length file for Net::FTP to
download; such files are now skipped.
Testing would entail setting up an FTP server that contains a
zero-length file, then setting up an EDI remote account and
using edi_fetcher.pl to try to retrieve the file.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
my $self = shift;
my $filename;
+ my $remote_filename = $self->{get_args}->[0];
eval { $filename = $self->_ftp->get(@{$self->{get_args}}) };
if ($@ or not $filename) {
$logger->error(
);
return;
}
+ if (!defined(${$filename->sref})) {
+ # the underlying scalar is still undef, so Net::FTP must have
+ # successfully retrieved an empty file... which we should skip
+ $logger->error(
+ $self->_error(
+ "get $remote_filename from", $self->remote_host, ": remote file is zero-length"
+ )
+ );
+ return;
+ }
$self->local_file($filename);
$logger->info(