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:22:09Z
Lists: pgsql-hackers
Hi,

> While working on it I noticed a potentially problematic strcmp call,
> marked with XXX in the patch. I didn't address this issue in v2.

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.



Commits

  1. ecpg: Improve error detection around ecpg_strdup()

  2. ecpg: Fix NULL pointer dereference during connection lookup