From 509d0f76cedd646909fe3c86cd930f02f2af2caa Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 13 Mar 2024 15:32:10 +0100 Subject: 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 77176cc17..c2e3b5fd9 100644 --- a/tools/gpg-check-pattern.c +++ b/tools/gpg-check-pattern.c @@ -286,7 +286,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); -- cgit v1.2.3