]> jfr.im git - irc/quakenet/newserv.git/blobdiff - core/nsmalloc.c
fix last 2 warnings
[irc/quakenet/newserv.git] / core / nsmalloc.c
index 043e45e4eecf79e8d98fbfee62843573387313fb..901987cc67fa6f5eae6b276496177711d624038d 100644 (file)
@@ -43,7 +43,7 @@ void *nsmalloc(unsigned int poolid, size_t size) {
 void nsfree(unsigned int poolid, void *ptr) {
   struct nsminfo *nsmp;
   
-  if (poolid >= MAXPOOL)
+  if (!ptr || poolid >= MAXPOOL)
     return;
 
   /* evil */
@@ -118,7 +118,7 @@ void nscheckfreeall(unsigned int poolid) {
     return;
  
   if (nsmpools[poolid].first.next) {
-    Error("core",ERR_INFO,"nsmalloc: Blocks still allocated in pool #%d (%s): %lub, %lu items",poolid,nsmpoolnames[poolid]?nsmpoolnames[poolid]:"??",nsmpools[poolid].size,nsmpools[poolid].count);
+    Error("core",ERR_INFO,"nsmalloc: Blocks still allocated in pool #%d (%s): %zub, %lu items",poolid,nsmpoolnames[poolid]?nsmpoolnames[poolid]:"??",nsmpools[poolid].size,nsmpools[poolid].count);
     nsfreeall(poolid);
   }
 }
@@ -141,7 +141,8 @@ void *nsrealloc(unsigned int poolid, void *ptr, size_t size) {
 }
 
 void nsfree(unsigned int poolid, void *ptr) {
-  free(ptr);
+  if(ptr)
+    free(ptr);
 }
 
 void nsfreeall(unsigned int poolid) {