Re: Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf
Дата
Msg-id 22923.1085495933@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf  (Martin Pitt <martin@piware.de>)
Ответы Re: Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Martin Pitt <martin@piware.de> writes:
> 2004-05-14 14:50:14 [8725] LOG:  authentication file token too long, skippi=
> ng: "=98.=ED=F1
> Segmentation fault

Looking at the only place this message is produced, in
src/backend/libpq/hba.c, it appears that we are printing a string buffer
that is not guaranteed null-terminated.  The segfault might be due to
that.  I would suggest adding more paranoia along these lines:

        if (buf >= end_buf)
        {
+           *buf = '\0';
            ereport(LOG,
                    (errcode(ERRCODE_CONFIG_FILE_ERROR),
                     errmsg("authentication file token too long, skipping: \"%s\"",
                            buf)));
            /* Discard remainder of line */
            while ((c = getc(fp)) != EOF && c != '\n')
                ;
-           buf[0] = '\0';
            break;
        }

This won't fix the underlying problem (where is the junk data coming
from?) but it might at least let you get further in your investigation.

            regards, tom lane

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

Предыдущее
От: Richard Huxton
Дата:
Сообщение: Re: Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Fwd: Bug#249083: postgresql: Postgres SIGSEGV if wins in nsswitch.conf