aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/execute.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2005-06-02 12:35:11 +0000
committerMichael Meskes <meskes@postgresql.org>2005-06-02 12:35:11 +0000
commit2d5d691d15d041f9ef68fa3bdd65fabeb82d4b8d (patch)
treee545bd4d3cf06d2f0fdf5acf1082c276afcc3219 /src/interfaces/ecpg/ecpglib/execute.c
parent21fda22ec46deb7734f793ef4d7fa6c226b4c78e (diff)
downloadpostgresql-2d5d691d15d041f9ef68fa3bdd65fabeb82d4b8d.tar.gz
postgresql-2d5d691d15d041f9ef68fa3bdd65fabeb82d4b8d.zip
- Fixed memory leak in ecpglib by adding some missing free() commands.
- Added patch by Gavin Scott <gavin@planetacetech.com> for Intel 64bit hardware.
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/execute.c')
-rw-r--r--src/interfaces/ecpg/ecpglib/execute.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c
index db82073ad50..c585a81b580 100644
--- a/src/interfaces/ecpg/ecpglib/execute.c
+++ b/src/interfaces/ecpg/ecpglib/execute.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.39 2005/03/18 10:00:43 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.40 2005/06/02 12:35:11 meskes Exp $ */
/*
* The aim is to get a simpler inteface to the database routines.
@@ -66,10 +66,11 @@ quote_postgres(char *arg, int lineno)
res[ri++] = '\'';
res[ri] = '\0';
+ ECPGfree(arg);
return res;
}
-#if defined(__GNUC__) && (defined (__powerpc__) || defined(__AMD64__))
+#if defined(__GNUC__) && (defined (__powerpc__) || defined(__AMD64__) || defined(__x86_64__))
#define APREF ap
#else
#define APREF *ap
@@ -177,7 +178,7 @@ create_statement(int lineno, int compat, int force_indicator, struct connection
if (!(var = (struct variable *) ECPGalloc(sizeof(struct variable), lineno)))
return false;
-#if defined(__GNUC__) && (defined (__powerpc__) || defined(__AMD64__))
+#if defined(__GNUC__) && (defined (__powerpc__) || defined(__AMD64__) || defined(__x86_64__))
ECPGget_variable(ap, type, var, true);
#else
ECPGget_variable(&ap, type, var, true);
@@ -819,8 +820,6 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
if (!mallocedval)
return false;
- ECPGfree(newcopy);
-
*tobeinserted_p = mallocedval;
*malloced_p = true;
}
@@ -855,8 +854,6 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
if (!mallocedval)
return false;
- ECPGfree(newcopy);
-
*tobeinserted_p = mallocedval;
*malloced_p = true;
}