Fix memory leaks found by valgrind
[infodrom/cgilib] / cgi.c
diff --git a/cgi.c b/cgi.c
index ad555c2..1f6b6a3 100644 (file)
--- a/cgi.c
+++ b/cgi.c
@@ -69,6 +69,7 @@ int cgiSetHeader (const char *name, const char *value)
     memset(pivot, 0, (cp-name + vp-value + 5) * sizeof (char));
 
     strncpy (pivot, name, cp-name);
+    pivot[cp-name] = '\0';
     strncat (pivot, ": ", 2);
     strncat (pivot, value, vp-value);
     strncat (pivot, "\r\n", 2);
@@ -100,11 +101,19 @@ int cgiSetType (const char *type)
 void cgiHeader ()
 {
     if (cgiType)
+    {
        printf ("Content-type: %s\r\n", cgiType);
+       free(cgiType);
+       cgiType = NULL;
+    }
     else
        printf ("Content-type: text/html\r\n");
     if (cgiHeaderString)
+    {
        printf ("%s", cgiHeaderString);
+       free(cgiHeaderString);
+       cgiHeaderString = NULL;
+    }
     printf ("\r\n");
 }