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" .../initdband 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.
