Re: No error checking when reading from file using zstd in pg_dump
От | Evgeniy Gorbanev |
---|---|
Тема | Re: No error checking when reading from file using zstd in pg_dump |
Дата | |
Msg-id | 95255a86-4bc7-4ff4-aa26-4441aafdf0fb@basealt.ru обсуждение исходный текст |
Ответы |
Re: No error checking when reading from file using zstd in pg_dump
|
Список | pgsql-hackers |
16.06.2025 14:25, Daniel Gustafsson пишет: >> 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 The feof() check is in the calling functions, e.g. in the Zstd_getc function. Regards, Evgeniy
В списке pgsql-hackers по дате отправления: