list_free in addRangeTableEntryForJoin

From: Ilia Evdokimov <ilya(dot)evdokimov(at)tantorlabs(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: list_free in addRangeTableEntryForJoin
Date: 2024-06-10 10:35:39
Message-ID: ff7f8032-4f39-4df0-9941-b4b7e03f67c3@tantorlabs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Hackers

I have identified a potential memory leak in the
`addRangeTableEntryForJoin()` function. The second parameter of
`addRangeTableEntryForJoin()`, `colnames`, is a `List*` that is
concatenated with another `List*`, `eref->colnames`, using
`list_concat()`. We need to pass only the last `numaliases` elements of
the list, for which we use `list_copy_tail`. This function creates a
copy of the `colnames` list, resulting in `colnames` pointing to the
current list that will not be freed. Consequently, a new list is already
concatenated.

To address this issue, I have invoked `list_free(colnames)` afterwards.
If anyone is aware of where the list is being freed or has any
suggestions for improvement, I would greatly appreciate your input.

Best Regards,

Ilia Evdokimov,

TantorLabs LCC

Attachment Content-Type Size
list_free.patch text/x-patch 923 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2024-06-10 10:56:57 Re: Conflict Detection and Resolution
Previous Message Daniel Gustafsson 2024-06-10 10:30:36 Re: Add support to TLS 1.3 cipher suites and curves lists