]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Add malloc checking to lua/nterfacer/trojanscan.
authorChris Porter <redacted>
Fri, 29 Feb 2008 21:04:49 +0000 (21:04 +0000)
committerChris Porter <redacted>
Fri, 29 Feb 2008 21:04:49 +0000 (21:04 +0000)
Cosmetic alteration to nsmalloc output.

core/nsmalloc.c
core/nsmalloc.h
lua/lua.c
nterfacer/nterfacer.c
trojanscan/trojanscan.c

index e4b0333417c2a17fe667b0d072517b04dbee428c..3c23f03b97bab13955d85d9cd24239a02e4c954a 100644 (file)
@@ -129,15 +129,21 @@ void nsfreeall(unsigned int poolid) {
   pools[poolid].count=0;
 }
 
+void nscheckfreeall(unsigned int poolid) {
+  if (poolid >= MAXPOOL)
+    return;
+  if (pools[poolid].first.next) {
+    Error("core",ERR_INFO,"nsmalloc: Blocks still allocated in pool #%d (%s): %lub, %lu items",poolid,poolnames[poolid]?poolnames[poolid]:"??",pools[poolid].size,pools[poolid].count);
+    nsfreeall(poolid);
+  }
+}
+
 void nsexit() {
   unsigned int i;
   
-  for (i=0;i<MAXPOOL;i++) {
-    if (pools[i].first.next) {
-      Error("core",ERR_INFO,"nsmalloc: Blocks still allocated in pool #%d (%lub, %lu items)\n",i,pools[i].size, pools[i].count);
-      nsfreeall(i);
-    }
-  }
+  for (i=0;i<MAXPOOL;i++)
+    nscheckfreeall(i);
 }
 
 int nspoolstats(unsigned int poolid, size_t *size, unsigned long *count, char **poolname, size_t *realsize) {
index 8b25aa1aa897f132ae4643579857e170d330aec6..ea5d862cb0efb909b45e03271647b20c530ad7e1 100644 (file)
@@ -20,6 +20,7 @@ void nsfreeall(unsigned int poolid);
 void nsexit(void);
 void *nsrealloc(unsigned int poolid, void *ptr, size_t size);
 int nspoolstats(unsigned int poolid, size_t *size, unsigned long *count, char **poolname, size_t *realsize);
+void nscheckfreeall(unsigned int poolid);
 
 #define MAXPOOL                100
 
index c23da67a7610c3ffa0eec1f7441e9bb6dfeb61a7..a3d54f3b12359b20917256128f3e6fb5d606fa6e 100644 (file)
--- a/lua/lua.c
+++ b/lua/lua.c
@@ -151,6 +151,7 @@ void _fini() {
   freesstring(dummy.name);
 
   lua_freedebugsocket();
+  nscheckfreeall(POOL_LUA);
 }
 
 void lua_loadscripts(void) {
index cf95e8f86a4fbab2040defbf6f39cf9801567471..6e68d0c156f9fcd2ce0e467257b31dd1ccd736de 100644 (file)
@@ -128,6 +128,7 @@ void _fini(void) {
   }
 
   nrl = nterface_close_log(nrl);
+  nscheckfreeall(POOL_NTERFACER);
 }
 
 int load_permits(void) {
index efdb804d1ef1ad08e5f6a85ff81fb831a71e816c..960594b5937ccdf0fd3081113097567a8160a215 100644 (file)
@@ -129,6 +129,8 @@ void _fini(void) {
   for (i=0;i<trojanscan_tailpoolsize;i++)
     freesstring(trojanscan_tailpool[i]);
   trojanscan_database_close();
+
+  nscheckfreeall(POOL_TROJANSCAN);
 }
 
 static void trojanscan_connect_nick(void *arg) {