Fix "ignoring return value" complaints from commit 96d1f423f9
authorJoe Conway <[email protected]>
Sat, 4 Jul 2020 17:47:21 +0000 (13:47 -0400)
committerJoe Conway <[email protected]>
Sat, 4 Jul 2020 17:47:21 +0000 (13:47 -0400)
The cfbot and some BF animals are complaining about the previous
read_binary_file commit because of ignoring return value of ‘fread’.
So let's make everyone happy by testing the return value even though
not strictly needed.

Reported by Justin Pryzby, and suggested patch by Tom Lane. Backpatched
to v11 same as the previous commit.

Reported-By: Justin Pryzby
Reviewed-By: Tom Lane
Discussion: https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
Backpatch-through: 11

src/backend/utils/adt/genfile.c

index b8a4ba82272200425525a5a9c3f34e6306856573..87ec904b6f7ec7bcc88774cd8035cdc2f2f7361c 100644 (file)
@@ -167,8 +167,7 @@ read_binary_file(const char *filename, int64 seek_offset, int64 bytes_to_read,
            {
                char    rbuf[1]; 
 
-               fread(rbuf, 1, 1, file);
-               if (!feof(file))
+               if (fread(rbuf, 1, 1, file) != 0 || !feof(file))
                    ereport(ERROR,
                            (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
                             errmsg("file length too large")));