Re: replace strtok()
От | Peter Eisentraut |
---|---|
Тема | Re: replace strtok() |
Дата | |
Msg-id | 5da63fb1-f388-4ce0-948d-2041054d6e40@eisentraut.org обсуждение исходный текст |
Ответ на | Re: replace strtok() (Ranier Vilela <ranier.vf@gmail.com>) |
Ответы |
Re: replace strtok()
|
Список | pgsql-hackers |
On 15.10.24 14:07, Ranier Vilela 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. > > Yeah, I also saw this usage, but I was waiting for a definition for the > first report. > The solution IMO, would be the same. > > diff --git a/src/common/logging.c b/src/common/logging.c > index aedd1ae2d8..45b5316d48 100644 > --- a/src/common/logging.c > +++ b/src/common/logging.c > @@ -121,7 +121,7 @@ pg_logging_init(const char *argv0) > { > char *token; > > - while ((token = strsep(&colors, ":"))) > + while ((token = strsep(&colors, ":")) != NULL && colors != NULL) > { > char *e = strchr(token, '='); > The advantage of this change is that it would avoid processing > unnecessary tokens. This wouldn't fix anything, I think. If colors is NULL, then strsep() already returns NULL, so the added code does nothing.
В списке pgsql-hackers по дате отправления: