Changeset: 6638d256fcdb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6638d256fcdb
Modified Files:
gdk/gdk_logger.c
gdk/gdk_utils.c
monetdb5/mal/mal.c
monetdb5/mal/mal_linker.c
monetdb5/mal/mal_runtime.c
monetdb5/mal/mal_session.c
sql/storage/bat/bat_logger.c
Branch: default
Log Message:
Memory leaks.
diffs (130 lines):
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1757,8 +1757,13 @@ logger_load(int debug, const char* fn, c
error:
if (fp)
fclose(fp);
- if (lg)
+ if (lg) {
+ GDKfree(lg->fn);
+ GDKfree(lg->dir);
+ GDKfree(lg->local_dir);
+ GDKfree(lg->buf);
GDKfree(lg);
+ }
return LOG_ERR;
}
@@ -1815,7 +1820,7 @@ logger_new(int debug, const char *fn, co
fprintf(stderr, "!ERROR: logger_new: strdup failed\n");
GDKfree(lg->fn);
GDKfree(lg->dir);
- GDKfree(lg->local_dir);
+ GDKfree(lg->buf);
GDKfree(lg);
return NULL;
}
@@ -1833,6 +1838,7 @@ logger_new(int debug, const char *fn, co
GDKfree(lg->fn);
GDKfree(lg->dir);
GDKfree(lg->local_dir);
+ GDKfree(lg->buf);
GDKfree(lg);
return NULL;
}
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -742,6 +742,8 @@ GDKreset(int status)
#endif
GDKnr_threads = 0;
GDKnrofthreads = 0;
+ close_stream((stream *) THRdata[0]);
+ close_stream((stream *) THRdata[1]);
memset((char*) GDKbatLock,0, sizeof(GDKbatLock));
memset((char*) GDKbbpLock,0,sizeof(GDKbbpLock));
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -141,6 +141,12 @@ void mserver_reset(void)
mal_factory_reset();
mal_dataflow_reset();
THRdel(mal_clients->mythread);
+ GDKfree(mal_clients->errbuf);
+ mal_clients->fdin->s = NULL;
+ bstream_destroy(mal_clients->fdin);
+ GDKfree(mal_clients->prompt);
+ GDKfree(mal_clients->username);
+ freeStack(mal_clients->glb);
mal_client_reset();
mal_linker_reset();
mal_resource_reset();
diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -110,7 +110,7 @@ getAddress(stream *out, str modname, str
adr = (MALfcn) dlsym(dl, fcnname);
filesLoaded[lastfile].modname = GDKstrdup("libmonetdb5");
- filesLoaded[lastfile].fullname = "libmonetdb5";
+ filesLoaded[lastfile].fullname = GDKstrdup("libmonetdb5");
filesLoaded[lastfile].handle = dl;
lastfile ++;
if(adr != NULL)
@@ -259,7 +259,8 @@ mal_linker_reset(void)
for (i = 0; i < lastfile; i++){
if (filesLoaded[i].fullname) {
/* dlclose(filesLoaded[i].handle);*/
- if (filesLoaded[i].modname)
GDKfree(filesLoaded[i].modname);
+ GDKfree(filesLoaded[i].modname);
+ GDKfree(filesLoaded[i].fullname);
}
filesLoaded[i].modname = NULL;
filesLoaded[i].fullname = NULL;
diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c
--- a/monetdb5/mal/mal_runtime.c
+++ b/monetdb5/mal/mal_runtime.c
@@ -32,6 +32,7 @@ static int calltag =0; // to identify ea
void
mal_runtime_reset(void)
{
+ GDKfree(QRYqueue);
QRYqueue = 0;
qtop = 0;
qsize = 0;
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -470,6 +470,11 @@ MSserveClient(void *dummy)
}
if (!isAdministrator(c))
MCcloseClient(c);
+ if (strcmp(c->nspace->name, "user") == 0) {
+ GDKfree(c->nspace->space);
+ GDKfree(c->nspace);
+ c->nspace = NULL;
+ }
}
/*
diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -182,9 +182,12 @@ bl_destroy(void)
bat_logger = NULL;
if (l) {
- // FIXME: either of those corrupts stuff
- //logger_exit(l);
- //logger_destroy(l);
+ close_stream(l->log);
+ GDKfree(l->fn);
+ GDKfree(l->dir);
+ GDKfree(l->local_dir);
+ GDKfree(l->buf);
+ GDKfree(l);
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list