On Thu, Dec 5, 2013 at 12:06:07PM -0800, Kevin Grittner wrote: > An EDB customer reported a problem with pg_archivecleanup which I > have looked into and found a likely cause. It is, in any event, a > bug which I think should be fixed. It has to do with our use of > the readdir() function: > > http://pubs.opengroup.org/onlinepubs/7908799/xsh/readdir_r.html > > These are the relevant bits: > > | Applications wishing to check for error situations should set > | errno to 0 before calling readdir(). If errno is set to non-zero > | on return, an error occurred. > > | Upon successful completion, readdir() returns a pointer to an > | object of type struct dirent. When an error is encountered, a > | null pointer is returned and errno is set to indicate the error. > | When the end of the directory is encountered, a null pointer is > | returned and errno is not changed.
Wow, another case where errno clearing is necessary. We were just looking this requirement for getpwuid() last week. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers