Re: Missing NULL check after calling ecpg_strdup

Aleksander Alekseev <aleksander@tigerdata.com>

From: Aleksander Alekseev <aleksander@tigerdata.com>
To: pgsql-hackers@lists.postgresql.org
Cc: Evgeniy Gorbanev <gorbanyoves@basealt.ru>
Date: 2025-07-14T13:23:10Z
Lists: pgsql-hackers

Attachments

Hi,

> Here is the corrected patch v3. Changes since v2:
>
> ```
>                 for (con = all_connections; con != NULL; con = con->next)
>                 {
> -                       /* XXX strcmp() will segfault if con->name is NULL */
> -                       if (strcmp(connection_name, con->name) == 0)
> +                       /* Check for NULL to prevent segfault */
> +                       if (con->name != NULL &&
> strcmp(connection_name, con->name) == 0)
>                                 break;
>                 }
>                 ret = con;
> ```
>
> I was tired or something and didn't think of this trivial fix.
>
> As a side note it looks like ecpg could use some refactoring, but this
> is subject for another patch IMO.

Forgot the attachment. Sorry for the noise.

Commits

  1. ecpg: Improve error detection around ecpg_strdup()

  2. ecpg: Fix NULL pointer dereference during connection lookup