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.
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? |