aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1997-01-11 14:24:40 +0000
committerMarc G. Fournier <scrappy@hub.org>1997-01-11 14:24:40 +0000
commit8738e47d03db3555376f2da37f1e0604052a46de (patch)
tree01707408fbfe3994a90a88a60ca916349754fa05
parent7f833f88267c845068c037b4bf416086ed2d8c26 (diff)
downloadpostgresql-8738e47d03db3555376f2da37f1e0604052a46de.tar.gz
postgresql-8738e47d03db3555376f2da37f1e0604052a46de.zip
From: darcy@druid.net (D'Arcy J.M. Cain)
Fix for libpgtcl: I forgot to clear out the variable created and the memory used.
-rw-r--r--src/interfaces/libpgtcl/pgtclCmds.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c
index 1b1356627d3..2c7b9182eb4 100644
--- a/src/interfaces/libpgtcl/pgtclCmds.c
+++ b/src/interfaces/libpgtcl/pgtclCmds.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.9 1997/01/03 18:48:30 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.10 1997/01/11 14:24:40 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1129,9 +1129,9 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
int r;
size_t tupno, column, ncols;
Tcl_DString headers;
+ char buffer[2048];
struct {
char *cname;
- char *data;
int change;
} *info;
@@ -1166,24 +1166,23 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
for (column = 0; column < ncols; column++)
{
info[column].cname = PQfname(result, column);
- info[column].data = malloc(2000);
info[column].change = 0;
Tcl_DStringAppendElement(&headers, info[column].cname);
}
Tcl_SetVar2(interp, argv[3], ".headers", Tcl_DStringValue(&headers), 0);
- sprintf(info[0].data, "%d", ncols);
- Tcl_SetVar2(interp, argv[3], ".numcols", info[0].data, 0);
+ sprintf(buffer, "%d", ncols);
+ Tcl_SetVar2(interp, argv[3], ".numcols", buffer, 0);
for (tupno = 0; tupno < PQntuples(result); tupno++)
{
- sprintf(info[0].data, "%d", tupno);
- Tcl_SetVar2(interp, argv[3], ".tupno", info[0].data, 0);
+ sprintf(buffer, "%d", tupno);
+ Tcl_SetVar2(interp, argv[3], ".tupno", buffer, 0);
for (column = 0; column < ncols; column++)
{
- strcpy(info[column].data, PQgetvalue(result, tupno, column));
- Tcl_SetVar2(interp, argv[3], info[column].cname, info[column].data, 0);
+ strcpy(buffer, PQgetvalue(result, tupno, column));
+ Tcl_SetVar2(interp, argv[3], info[column].cname, buffer, 0);
}
Tcl_SetVar2(interp, argv[3], ".command", "update", 0);
@@ -1206,6 +1205,8 @@ Pg_select(ClientData cData, Tcl_Interp *interp, int argc, char **argv)
}
}
+ free(info);
+ Tcl_UnsetVar(interp, argv[3], 0);
Tcl_AppendResult(interp, "", 0);
return TCL_OK;
}