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
This commit is contained in:
Bruce Momjian 1999-12-14 22:03:48 +00:00
parent 7431796b46
commit 9805abb0fb
1 changed files with 8 additions and 7 deletions

View File

@ -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);