Re: replace strtok()
От | Peter Eisentraut |
---|---|
Тема | Re: replace strtok() |
Дата | |
Msg-id | 00ebf832-0f69-4562-aa1c-b5266f578dc6@eisentraut.org обсуждение исходный текст |
Ответ на | replace strtok() (Peter Eisentraut <peter@eisentraut.org>) |
Ответы |
Re: replace strtok()
|
Список | pgsql-hackers |
On 16.10.24 09:42, Peter Eisentraut wrote: > On 15.10.24 14:00, Alexander Lakhin wrote: >> I also wonder, if other places touched by 5d2e1cc11 need corrections too. >> I played with >> PG_COLOR=always PG_COLORS="error=01;31" .../initdb >> >> and it looks like this free() call in pg_logging_init(): >> char *colors = strdup(pg_colors_env); >> >> if (colors) >> { >> ... >> while ((token = strsep(&colors, ":"))) >> { >> ... >> } >> >> free(colors); >> } >> gets null in colors. > > Yes, this is indeed incorrect. We need to keep a separate pointer to > the start of the string to free later. This matches the example on the > strsep man page (https://man.freebsd.org/cgi/man.cgi?strsep(3)). Patch > attached. I have committed both fixes mentioned in this thread in the last couple of days.
В списке pgsql-hackers по дате отправления: