From: | Aleksander Alekseev <aleksander(at)tigerdata(dot)com> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Evgeniy Gorbanev <gorbanyoves(at)basealt(dot)ru> |
Subject: | Re: Missing NULL check after calling ecpg_strdup |
Date: | 2025-07-22 13:20:53 |
Message-ID: | CAJ7c6TNX+sL6YLdOVcaHhh_aXQzC3ggfw8vcygJhrNbSzcNEig@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
> I have spent some time rechecking the whole code, and I have
> backpatched this part. [...]
Many thanks!
> Hmm.. Aren't you missing a va_end(args) in the early exit you are
> adding here?
I do, and it's rather stupid of me. Thanks.
> [...]
> At the end, I finish with the attached, where alloc_failed matters for
> the failure checks with repeated calls of strdup() in ECPGconnect()
> and also the setlocale() case. This is for HEAD due to how unlikely
> these issues would occur in practice.
v7 may have a compilation warning on Linux:
```
warning: unused variable ‘alloc_failed’ [-Wunused-variable]
```
... because the only use of the variable is hidden under #ifdef's.
Fixed in v8:
```
--- a/src/interfaces/ecpg/ecpglib/descriptor.c
+++ b/src/interfaces/ecpg/ecpglib/descriptor.c
@@ -240,9 +240,9 @@ ECPGget_desc(int lineno, const char *desc_name,
int index,...)
act_tuple;
struct variable data_var;
struct sqlca_t *sqlca = ECPGget_sqlca();
- bool alloc_failed = false;
+ bool alloc_failed = (sqlca == NULL);
- if (sqlca == NULL)
+ if (alloc_failed)
{
ecpg_raise(lineno, ECPG_OUT_OF_MEMORY,
ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY, NULL);
```
This code is also more consistent with what we ended up having in connect.c.
Other than that the patch looks OK to me.
Attachment | Content-Type | Size |
---|---|---|
v8-0001-ecpg-Improve-error-detection-of-ecpg_strdup.patch | text/x-patch | 15.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrei Lepikhov | 2025-07-22 13:44:11 | Re: track generic and custom plans in pg_stat_statements |
Previous Message | Fujii Masao | 2025-07-22 13:13:31 | Re: Log prefix missing for subscriber log messages received from publisher |