Re: [BUGS] BUG #8167: false EINVAL -22 for opening a file

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [BUGS] BUG #8167: false EINVAL -22 for opening a file
Дата
Msg-id 15677.1368719710@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: [BUGS] BUG #8167: false EINVAL -22 for opening a file
Список pgsql-hackers
nelson@monkey.org writes:
> RhodiumToad asked me to report "pg in PathNameOpenFile / mdopen is
> assuming that errno is preserved over calls to free() which is not
> required by the spec"

Good catch!  The proximate problem appears to be this bit in
PathNameOpenFile:
vfdP->fd = BasicOpenFile(fileName, fileFlags, fileMode);
if (vfdP->fd < 0){    FreeVfd(file);    free(fnamecopy);    return -1;}

The other code layers in this stack seem to be careful about preserving
errno where needed, but this bit isn't.

I've not really reviewed fd.c for other instances of the same bug,
but I do see some places where there are DO_DB(...) debug calls in
places where errno had better not change.  I'm thinking maybe we should
improve that macro to include save/restore errno.  Or else rip that
stuff out entirely --- I've sure never built this code with FDDEBUG
set, has anyone else?
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: PostgreSQL 9.3 beta breaks some extensions "make install"
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Logging of PAM Authentication Failure