summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imlib.c4
-rw-r--r--test/feh.t6
-rw-r--r--test/tiny.pbm4
3 files changed, 12 insertions, 2 deletions
diff --git a/src/imlib.c b/src/imlib.c
index 3a7cb6d..6f31e96 100644
--- a/src/imlib.c
+++ b/src/imlib.c
@@ -253,7 +253,9 @@ int feh_is_image(feh_file * file)
if (!fh) {
return 0;
}
- if (fread(buf, 1, 16, fh) != 16) {
+ // Files smaller than buf will be padded with zeroes
+ memset(buf, 0, sizeof(buf));
+ if (fread(buf, 1, 16, fh) <= 0) {
fclose(fh);
return 0;
}
diff --git a/test/feh.t b/test/feh.t
index 44f705f..157125d 100644
--- a/test/feh.t
+++ b/test/feh.t
@@ -2,7 +2,7 @@
use strict;
use warnings;
use 5.010;
-use Test::Command tests => 71;
+use Test::Command tests => 73;
$ENV{HOME} = 'test';
@@ -186,3 +186,7 @@ $cmd
$cmd->exit_is_num(0);
$cmd->stdout_is_file("test/${list_dir}/default");
$cmd->stderr_is_eq('');
+
+$cmd = Test::Command->new( cmd => "$feh --list test/tiny.pbm" );
+$cmd->exit_is_num(0);
+$cmd->stderr_is_eq('');
diff --git a/test/tiny.pbm b/test/tiny.pbm
new file mode 100644
index 0000000..3fb3e4e
--- /dev/null
+++ b/test/tiny.pbm
@@ -0,0 +1,4 @@
+P4
+1 1
+
+