Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix "ignoring return value" complaints from commit 96d1f423f9
authorJoe Conway <mail@joeconway.com>
Sat, 4 Jul 2020 17:47:31 +0000 (13:47 -0400)
committerJoe Conway <mail@joeconway.com>
Sat, 4 Jul 2020 17:47:31 +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 37e90d2302ac24d7f71881c75b0dc123604b3f72..2f6aba78b7e526b6e0af141cde793a0570c9913d 100644 (file)
@@ -165,8 +165,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")));