Fix "ignoring return value" complaints from commit 96d1f423f9
authorJoe Conway <mail@joeconway.com>
Sat, 4 Jul 2020 17:46:31 +0000 (13:46 -0400)
committerJoe Conway <mail@joeconway.com>
Sat, 4 Jul 2020 17:46:31 +0000 (13:46 -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 7a691875ddf19d18214fe8e31edcdd251ca23c0c..c1cc19d1f5c32098d6d2b7462296bd5702988fcf 100644 (file)
@@ -168,8 +168,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")));