Re: readdir is incorrectly implemented at Windows
От | Grigory Smolkin |
---|---|
Тема | Re: readdir is incorrectly implemented at Windows |
Дата | |
Msg-id | 591b93df-3d05-c88e-54bd-29c6a94d2a2d@postgrespro.ru обсуждение исходный текст |
Ответ на | readdir is incorrectly implemented at Windows (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>) |
Список | pgsql-hackers |
Originally bug was reported by Yuri Kurenkov: https://github.com/postgrespro/pg_probackup/issues/48 As pg_probackup rely on readdir() for listing files to backup, wrong permissions could lead to a broken backup. On 02/25/2019 06:38 PM, Konstantin Knizhnik wrote: > Hi hackers, > > Small issue with readir implementation for Windows. > Right now it returns ENOENT in case of any error returned by > FindFirstFile. > So all places in Postgres where opendir/listdir are used will assume > that directory is empty and > do nothing without reporting any error. > It is not so good if directory is actually not empty but there are not > enough permissions for accessing the directory and FindFirstFile > returns ERROR_ACCESS_DENIED: > > struct dirent * > readdir(DIR *d) > { > WIN32_FIND_DATA fd; > > if (d->handle == INVALID_HANDLE_VALUE) > { > d->handle = FindFirstFile(d->dirname, &fd); > if (d->handle == INVALID_HANDLE_VALUE) > { > errno = ENOENT; > return NULL; > } > } > > > Attached please find small patch fixing the problem. > -- Grigory Smolkin Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
В списке pgsql-hackers по дате отправления: