Index: trunk/src/samhain.c
===================================================================
--- trunk/src/samhain.c	(revision 472)
+++ trunk/src/samhain.c	(revision 473)
@@ -156,5 +156,8 @@
   ptr->g_glob     = calloc(1, SH_MAX_GLOBS * (GLOB_LEN+1));
   if (!(ptr->g_glob))
-    return -1;
+    {
+      free(ptr);
+      return -1;
+    }
   return pthread_setspecific(g_key, ptr);
 }
Index: trunk/src/sh_calls.c
===================================================================
--- trunk/src/sh_calls.c	(revision 472)
+++ trunk/src/sh_calls.c	(revision 473)
@@ -200,5 +200,5 @@
   error = errno;
   if (val_retry != 0) {
-    long eport;
+    long eport = 0;
     char eaddr[SH_IP_BUF];
     char emesg[SH_BUFSIZE];
Index: trunk/src/sh_entropy.c
===================================================================
--- trunk/src/sh_entropy.c	(revision 472)
+++ trunk/src/sh_entropy.c	(revision 473)
@@ -640,4 +640,5 @@
       }
       
+      /* cppcheck-suppress leakNoVarFunctionCall */
       if (NULL != freopen (_("/dev/null"), "r+", stderr))
 	{
Index: trunk/src/sh_html.c
===================================================================
--- trunk/src/sh_html.c	(revision 472)
+++ trunk/src/sh_html.c	(revision 473)
@@ -311,7 +311,12 @@
 	  if (entry_orig != NULL)
 	    {
-	      entry_orig = realloc(entry_orig,           /* free() ok     */
+	      char * ptr = realloc(entry_orig,           /* free() ok     */
 				   entry_size + line_size + 1);
-	      if (entry_orig) { add_size = line_size; }
+	      if (ptr) {
+		entry_orig = ptr;
+		add_size = line_size; 
+	      } else {
+		{ free(entry_orig); entry_orig = NULL; }
+	      }
 	    }
 	  else
Index: trunk/src/sh_portcheck.c
===================================================================
--- trunk/src/sh_portcheck.c	(revision 472)
+++ trunk/src/sh_portcheck.c	(revision 473)
@@ -1688,5 +1688,5 @@
 						 char * interface, int type)
 {
-  char buf[256];
+  char buf[256] = { '\0' };
   int proto;
   char * p;
Index: trunk/src/sh_srp.c
===================================================================
--- trunk/src/sh_srp.c	(revision 472)
+++ trunk/src/sh_srp.c	(revision 473)
@@ -114,5 +114,11 @@
       size = strlen(str) + 1;
       if (size > siz_str_internal)
-	get_str_internal = realloc (get_str_internal, size);
+	{
+	  char * ptr = realloc (get_str_internal, size);
+	  if (ptr)
+	    get_str_internal = ptr;
+	  else
+	    { free(get_str_internal); get_str_internal = NULL; }
+	}
       if (get_str_internal == NULL)
 	{
Index: trunk/src/sh_static.c
===================================================================
--- trunk/src/sh_static.c	(revision 472)
+++ trunk/src/sh_static.c	(revision 473)
@@ -1641,4 +1641,5 @@
 	; /* 'label at end of compound statement' */
 	SH_MUTEX_UNLOCK(resolv_lock);
+	/* cppcheck-suppress resourceLeak */
 	return 0;
 }
Index: trunk/src/sh_unix.c
===================================================================
--- trunk/src/sh_unix.c	(revision 472)
+++ trunk/src/sh_unix.c	(revision 473)
@@ -1504,5 +1504,8 @@
     if (env1[envlen] == NULL)
       {
+	int i;
 	fprintf(stderr, _("%s: %d: Out of memory\n"), FIL__, __LINE__);
+	for (i = 0; i < envlen; ++i) free(env1[len]);
+	free(env1);
 	SL_RET0(_("sh_unix_copyenv"));
       }
@@ -5672,4 +5675,5 @@
 
   sigtrap_variables->not_traced = signum;
+  /* cppcheck-suppress memleak */
   return;
 }
Index: trunk/src/sh_utils.c
===================================================================
--- trunk/src/sh_utils.c	(revision 472)
+++ trunk/src/sh_utils.c	(revision 473)
@@ -1315,7 +1315,12 @@
   while (0 < (ii = sl_read (fp, &image[s], 4096)))
     {
+      unsigned char * ptr;
       ilen += ii;
       s    += 4096;
-      image = realloc (image, (size_t) (4096 + s));
+      ptr = realloc (image, (size_t) (4096 + s));
+      if (ptr)
+	image = ptr;
+      else
+	{ free(image); image = NULL; }
       if (!image)
 	goto bail_mem;
Index: trunk/src/slib.c
===================================================================
--- trunk/src/slib.c	(revision 472)
+++ trunk/src/slib.c	(revision 473)
@@ -1738,4 +1738,5 @@
   /* Make entry.
    */
+  /* cppcheck-suppress arrayIndexOutOfBoundsCond */
   if (fd >= MAXFD || fd < 0)
      {
@@ -2010,4 +2011,5 @@
   /* Make entry.
    */
+  /* cppcheck-suppress arrayIndexOutOfBoundsCond */
   if (fd >= MAXFD)
      {
