From 034a8181c6439567ed1a32d117fe03b7b65d20d7 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 28 Nov 2016 07:42:34 +0100 Subject: [PATCH 1/1] safe_read_from: add filename parameter to improve error messages --- src/PVE/Tools.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm index 341f0ac..df66047 100644 --- a/src/PVE/Tools.pm +++ b/src/PVE/Tools.pm @@ -234,7 +234,7 @@ sub file_get_contents { my $fh = IO::File->new($filename, "r") || die "can't open '$filename' - $!\n"; - my $content = safe_read_from($fh, $max); + my $content = safe_read_from($fh, $max, 0, $filename); close $fh; @@ -259,22 +259,24 @@ sub file_read_firstline { } sub safe_read_from { - my ($fh, $max, $oneline) = @_; + my ($fh, $max, $oneline, $filename) = @_; $max = 32768 if !$max; + my $subject = defined($filename) ? "file '$filename'" : 'input'; + my $br = 0; my $input = ''; my $count; while ($count = sysread($fh, $input, 8192, $br)) { $br += $count; - die "input too long - aborting\n" if $br > $max; + die "$subject too long - aborting\n" if $br > $max; if ($oneline && $input =~ m/^(.*)\n/) { $input = $1; last; } } - die "unable to read input - $!\n" if !defined($count); + die "unable to read $subject - $!\n" if !defined($count); return $input; } -- 2.39.2