Variables should be free'ed only once.

REL8_2_STABLE
Michael Meskes 20 years ago
parent a27cb17788
commit 76475a7eb5
  1. 3
      src/interfaces/ecpg/ChangeLog
  2. 18
      src/interfaces/ecpg/ecpglib/execute.c

@ -2043,7 +2043,7 @@ Mo Jun 26 16:08:23 CEST 2006
We Jul 5 12:17:28 CEST 2006 We Jul 5 12:17:28 CEST 2006
- Fixed remaining Coverity bugs. - Fixed most of the remaining Coverity bugs.
Fr Jul 28 11:00:51 CEST 2006 Fr Jul 28 11:00:51 CEST 2006
@ -2051,5 +2051,6 @@ Fr Jul 28 11:00:51 CEST 2006
- SHOW statement puts result into a variable - SHOW statement puts result into a variable
- COPY TO STDOUT works - COPY TO STDOUT works
- Connection identifier has to be unique - Connection identifier has to be unique
- Variables should be free'ed only once.
- Set ecpg library version to 5.2. - Set ecpg library version to 5.2.
- Set ecpg version to 4.2.1. - Set ecpg version to 4.2.1.

@ -1,4 +1,4 @@
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.54 2006/07/28 10:12:56 meskes Exp $ */ /* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.55 2006/07/28 11:49:36 meskes Exp $ */
/* /*
* The aim is to get a simpler inteface to the database routines. * The aim is to get a simpler inteface to the database routines.
@ -1049,19 +1049,14 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
case ECPGt_timestamp: case ECPGt_timestamp:
{ {
char *str = NULL, *asc = NULL; char *str = NULL;
int slen; int slen;
if (var->arrsize > 1) if (var->arrsize > 1)
{ {
for (element = 0; element < var->arrsize; element++) for (element = 0; element < var->arrsize; element++)
{ {
asc = PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value)); str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value)), lineno);
if (!asc)
return false;
str = quote_postgres(asc, lineno);
ECPGfree(asc); /* we don't need this anymore so free it asap. */
if (!str) if (!str)
return false; return false;
@ -1084,12 +1079,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
} }
else else
{ {
asc = PGTYPEStimestamp_to_asc(*(timestamp *) (var->value)); str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) (var->value)), lineno);
if (!asc)
return false;
str = quote_postgres(asc, lineno);
ECPGfree(asc); /* we don't need this anymore so free it asap. */
if (!str) if (!str)
return false; return false;
slen = strlen(str); slen = strlen(str);

Loading…
Cancel
Save