From c27534de955370dde2f516d217e4c1bb117d2697 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 13 Mar 2024 15:32:10 +0100 Subject: [PATCH] gpg-check-pattern: Consider an empty pattern file as valid * tools/gpg-check-pattern.c (read_file): Check length before calling fread. -- The problem with an empty file is that es_fread is called to read one element of length zero which seems to be undefined behaviour and results in ENOENT on my test box. --- tools/gpg-check-pattern.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/gpg-check-pattern.c b/tools/gpg-check-pattern.c index d7481fffb..2698431c9 100644 --- a/tools/gpg-check-pattern.c +++ b/tools/gpg-check-pattern.c @@ -285,7 +285,7 @@ read_file (const char *fname, size_t *r_length) buflen = st.st_size; buf = xmalloc (buflen+1); - if (es_fread (buf, buflen, 1, fp) != 1) + if (buflen && es_fread (buf, buflen, 1, fp) != 1) { log_error ("error reading '%s': %s\n", fname, strerror (errno)); es_fclose (fp);