Commit 9805abb0 authored by Bruce Momjian's avatar Bruce Momjian

This patch solves a couple of memory leaks in ecpglib.c.  The patch is
ok for both the
development tree (CVS) and for 6.5.3.

 Stephen Birch
parent 7431796b
......@@ -528,13 +528,13 @@ ECPGexecute(struct statement * stmt)
{
int slen = strlen((char *) var->value);
if (!(newcopy = ecpg_alloc(slen + 1, stmt->lineno)))
if (!(mallocedval = ecpg_alloc(slen + 1, stmt->lineno)))
return false;
strncpy(newcopy, (char *) var->value, slen);
newcopy[slen] = '\0';
strncpy(mallocedval, (char *) var->value, slen);
mallocedval[slen] = '\0';
tobeinserted = newcopy;
tobeinserted = mallocedval;
}
break;
case ECPGt_varchar:
......@@ -1132,13 +1132,13 @@ ECPGtrans(int lineno, const char *connection_name, const char *transaction)
con->committed = true;
/* deallocate all prepared statements */
for (this = prep_stmts; this != NULL; this = this->next)
{
bool b = ECPGdeallocate(lineno, this->name);
while(prep_stmts != NULL) {
bool b = ECPGdeallocate(lineno, prep_stmts->name);
if (!b)
return false;
}
}
return true;
......@@ -1416,6 +1416,7 @@ ECPGdeallocate(int lineno, char *name)
else
prep_stmts = this->next;
free(this);
return true;
}
ECPGlog("deallocate_prepare: invalid statement name %s\n", name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment