Re: replace strtok()

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
Cc: David Steele <david(at)pgmasters(dot)net>, Michael Paquier <michael(at)paquier(dot)xyz>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: replace strtok()
Date: 2024-10-18 09:41:02
Message-ID: 00ebf832-0f69-4562-aa1c-b5266f578dc6@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2024-10-18 09:44:54 Re: Conflict detection for update_deleted in logical replication
Previous Message Pavel Stehule 2024-10-18 09:32:10 Re: Wrong security context for deferred triggers?