Commit Diff


commit - 2944b5788d975ee467b544fc8c566c50e6948022
commit + c5d5d231399df478b6d2d42ca6fde072abf57009
blob - 2c5de8fc94396a4665ffad47afd40aec6b1dbcc6
blob + e5b9488f40f225bed7324435cbdaf60e140ee421
--- fcgi.c
+++ fcgi.c
@@ -314,6 +314,7 @@ fcgi_parse_params(struct fcgi *fcgi, struct evbuffer *
 			evbuffer_remove(src, &server, vlen);
 			server[vlen] = '\0';
 
+			free(clt->clt_server_name);
 			if ((clt->clt_server_name = strdup(server)) == NULL)
 				return (-1);
 			log_debug("clt %d: server_name: %s", clt->clt_id,
@@ -327,6 +328,7 @@ fcgi_parse_params(struct fcgi *fcgi, struct evbuffer *
 			evbuffer_remove(src, &path, vlen);
 			path[vlen] = '\0';
 
+			free(clt->clt_script_name);
 			if ((clt->clt_script_name = strdup(path)) == NULL)
 				return (-1);
 			log_debug("clt %d: script_name: %s", clt->clt_id,
@@ -343,6 +345,7 @@ fcgi_parse_params(struct fcgi *fcgi, struct evbuffer *
 			if (vlen == 0)
 				(void) strlcpy(path, "/", sizeof(path));
 
+			free(clt->clt_path_info);
 			if ((clt->clt_path_info = strdup(path)) == NULL)
 				return (-1);
 			log_debug("clt %d: path_info: %s", clt->clt_id,