diff --git a/ChangeLog b/ChangeLog index 114eba8..9996f2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Mar 13 15:22:11 CST 2005 Jeff Smith + * src/util/mdb-export.c: + * src/util/mdb-ver.c: Fix a couple of leaks + Sat Mar 12 23:25:48 CST 2005 Jeff Smith * include/mdbtools.h: * src/libmdb/file.c: diff --git a/src/util/mdb-export.c b/src/util/mdb-export.c index 554693c..37964de 100644 --- a/src/util/mdb-export.c +++ b/src/util/mdb-export.c @@ -53,9 +53,8 @@ main(int argc, char **argv) MdbHandle *mdb; MdbTableDef *table; MdbColumn *col; - /* doesn't handle tables > 256 columns. Can that happen? */ - char *bound_values[256]; - int bound_lens[256]; + char **bound_values; + int *bound_lens; char *delimiter = NULL; char *row_delimiter = NULL; char header_row = 1; @@ -113,6 +112,8 @@ main(int argc, char **argv) fprintf(stderr," -I INSERT statements (instead of CSV)\n"); fprintf(stderr," -D set the date format (see strftime(3) for details)\n"); fprintf(stderr," -S Sanitize names (replace spaces etc. with underscore)\n"); + g_free (delimiter); + g_free (row_delimiter); exit(1); } @@ -137,6 +138,8 @@ main(int argc, char **argv) mdb_read_columns(table); mdb_rewind_table(table); + bound_values = (char **) g_malloc(table->num_cols * sizeof(char *)); + bound_lens = (int *) g_malloc(table->num_cols * sizeof(int)); for (j=0;jnum_cols;j++) { bound_values[j] = (char *) g_malloc0(MDB_BIND_SIZE); mdb_bind_column(table, j+1, bound_values[j], &bound_lens[j]); @@ -185,6 +188,8 @@ main(int argc, char **argv) for (j=0;jnum_cols;j++) { g_free(bound_values[j]); } + g_free(bound_values); + g_free(bound_lens); mdb_free_tabledef(table); g_free (delimiter); diff --git a/src/util/mdb-ver.c b/src/util/mdb-ver.c index 48950ab..bdc51b4 100644 --- a/src/util/mdb-ver.c +++ b/src/util/mdb-ver.c @@ -64,6 +64,7 @@ main(int argc, char **argv) if (!(mdb = mdb_open(argv[optind], MDB_NOFLAGS))) { fprintf(stderr,_("Error: unable to open file %s\n"),argv[optind]); + mdb_exit(); exit(1); } if (IS_JET3(mdb)) {