16.06.2025 14:25, Daniel Gustafsson пишет:
On 16 Jun 2025, at 10:14, Evgeniy Gorbanev <[email protected]> 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
The feof() check is in the calling functions, e.g. in the Zstd_getc function. Regards, Evgeniy
