Re: No error checking when reading from file using zstd in pg_dump - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Re: No error checking when reading from file using zstd in pg_dump
Date
Msg-id C22FF2A1-783D-4334-998B-2D4432EFD7C5@yesql.se
Whole thread Raw
List pgsql-hackers
> On 16 Jun 2025, at 10:14, Evgeniy Gorbanev <gorbanyoves@basealt.ru> wrote:

> In src/bin/pg_dump/compress_zstd.c, the Zstd_read function always
> returns true. But if you look at the Zstd_gets and Zstd_getc functions,
> where Zstd_read is called via CFH->read_func, it is expected that
> the Zstd_read function can also return false. In case of
> a read-from-file error, the process is expected to terminate, but
> pg_dump will continue the process.
> I assume that after checking
> if (cnt == 0)
> should be
> return false;

     if (cnt == 0)
-        break;
+        return false;

As cnt is coming from fread() returning false here would be wrong as you cannot
from 0 alone know if it's EOF or an error.  Instead it needs to inspect the
stream with feof() and ferror() to know how to proceed.

--
Daniel Gustafsson




pgsql-hackers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: [PATCH] Fix incomplete memory clearing in OAuth authentication
Next
From: Evgeniy Gorbanev
Date:
Subject: Re: No error checking when reading from file using zstd in pg_dump