From 278b6e284cbb6bbe90a58b0e178aef442778fe36 Mon Sep 17 00:00:00 2001 From: whydoubt Date: Wed, 9 Nov 2005 13:24:26 +0000 Subject: [PATCH] Fix several leaks and errors --- ChangeLog | 6 ++++++ src/sql/parser.y | 2 ++ src/util/mdb-array.c | 10 +++++----- src/util/mdb-header.c | 1 + src/util/mdb-sql.c | 5 +++-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5379aca..3de5543 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Nov 9 07:23:01 CST 2005 Jeff Smith + * src/util/mdb-array.c: + * src/util/mdb-header.c: + * src/util/mdb-sql.c: + * src/sql/parser.y: Fix several leaks and errors + Fri Nov 4 06:10:41 CST 2005 Jeff Smith * src/libmdb/data.c: Fix in reading bound boolean fields (Yasir Assam) * src/libmdb/data.c: Several more fixes in reading data into bound fields diff --git a/src/sql/parser.y b/src/sql/parser.y index 5a2d2f3..e8358b2 100644 --- a/src/sql/parser.y +++ b/src/sql/parser.y @@ -102,6 +102,8 @@ sarg: } | constant operator constant { mdb_sql_eval_expr(_mdb_sql(NULL), $1, $2, $3); + free($1); + free($3); } | identifier nulloperator { mdb_sql_add_sarg(_mdb_sql(NULL), $1, $2, NULL); diff --git a/src/util/mdb-array.c b/src/util/mdb-array.c index 20d03bf..94f891f 100644 --- a/src/util/mdb-array.c +++ b/src/util/mdb-array.c @@ -38,10 +38,10 @@ MdbColumn *col; char *bound_values [256]; char delimiter [] = ", "; char quote_text = 1; -int count; +int count = 0; int started; - if (argc < 2) + if (argc < 3) { fprintf (stderr, "Usage: %s \n", argv [0]); exit (1); @@ -109,19 +109,19 @@ int started; fprintf (stdout, "}"); count++; } + fprintf (stdout, "\n};\n\n"); + for (j = 0; j < table->num_cols; j++) { g_free (bound_values [j]); } - mdb_free_tabledef(table); } mdb_close (mdb); mdb_exit(); - fprintf (stdout, "\n};\n"); - fprintf (stdout, "\nconst int %s_array_length = %d;\n", + fprintf (stdout, "const int %s_array_length = %d;\n", argv [2], count); diff --git a/src/util/mdb-header.c b/src/util/mdb-header.c index c4be7b3..120b18b 100644 --- a/src/util/mdb-header.c +++ b/src/util/mdb-header.c @@ -139,6 +139,7 @@ FILE *cfile; mdb_free_tabledef(table); } + fclose (headerfile); fclose (typesfile); fclose (cfile); diff --git a/src/util/mdb-sql.c b/src/util/mdb-sql.c index 078f283..cbe30dd 100644 --- a/src/util/mdb-sql.c +++ b/src/util/mdb-sql.c @@ -430,7 +430,8 @@ char *delimiter = NULL; if ((!s) || (!fgets(s, 256, in))) { /* if we have something in the buffer, run it */ if (strlen(mybuf)) - run_query(out, sql, mybuf, delimiter); + run_query((out) ? out : stdout, + sql, mybuf, delimiter); break; } if (s[strlen(s)-1]=='\n') @@ -450,7 +451,7 @@ char *delimiter = NULL; line = 0; } else if (!strcmp(s,"go")) { line = 0; - run_query(out, sql, mybuf, delimiter); + run_query((out) ? out : stdout, sql, mybuf, delimiter); mybuf[0]='\0'; } else if (!strcmp(s,"reset")) { line = 0;