From 4ead7785b495b48f027f77abe2b1173f3c05f02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Wed, 27 Nov 2013 10:45:39 +0100 Subject: [PATCH 1/2] Croak on failed write into a file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mirror() method saves a document into a file. Any error while writing to the file, e.g. no disk space, was ignored. This patch fixes it by croaking on such I/O error. Signed-off-by: Petr Písař --- lib/HTTP/Tiny.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/HTTP/Tiny.pm b/lib/HTTP/Tiny.pm index 0178d65..48763ff 100644 --- a/lib/HTTP/Tiny.pm +++ b/lib/HTTP/Tiny.pm @@ -116,7 +116,10 @@ sub mirror { open my $fh, ">", $tempfile or Carp::croak(qq/Error: Could not open temporary file $tempfile for downloading: $!\n/); binmode $fh; - $args->{data_callback} = sub { print {$fh} $_[0] }; + $args->{data_callback} = sub { + print {$fh} $_[0] + or Carp::croak(qq/Error: Could not write into temporary file $tempfile: $!\n/); + }; my $response = $self->request('GET', $url, $args); close $fh or Carp::croak(qq/Error: Could not close temporary file $tempfile: $!\n/); -- 1.8.3.1