[PATCH 3/3] Do not unnecessarily strdup() environment variables

Lukas Fleischer cgit at cryptocrack.de
Mon Apr 1 17:11:15 CEST 2013


This reverts the memory duplication introduced in commit 60a2627, while
keeping everything else that has been cleaned up. The environment
variables are never modified, so we do not need to call xstrdupn() here.

Also, remove xstrdupn() which is no longer needed.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/cgit.c b/cgit.c
index d145f8a..ca3034c 100644
--- a/cgit.c
+++ b/cgit.c
@@ -333,11 +333,6 @@ static void querystring_cb(const char *name, const char *value)
 	}
 }
 
-static char *xstrdupn(const char *str)
-{
-	return (str ? xstrdup(str) : NULL);
-}
-
 static void prepare_context(struct cgit_context *ctx)
 {
 	memset(ctx, 0, sizeof(*ctx));
@@ -382,16 +377,16 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.summary_tags = 10;
 	ctx->cfg.max_atom_items = 10;
 	ctx->cfg.ssdiff = 0;
-	ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
-	ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
-	ctx->env.https = xstrdupn(getenv("HTTPS"));
-	ctx->env.no_http = xstrdupn(getenv("NO_HTTP"));
-	ctx->env.path_info = xstrdupn(getenv("PATH_INFO"));
-	ctx->env.query_string = xstrdupn(getenv("QUERY_STRING"));
-	ctx->env.request_method = xstrdupn(getenv("REQUEST_METHOD"));
-	ctx->env.script_name = xstrdupn(getenv("SCRIPT_NAME"));
-	ctx->env.server_name = xstrdupn(getenv("SERVER_NAME"));
-	ctx->env.server_port = xstrdupn(getenv("SERVER_PORT"));
+	ctx->env.cgit_config = getenv("CGIT_CONFIG");
+	ctx->env.http_host = getenv("HTTP_HOST");
+	ctx->env.https = getenv("HTTPS");
+	ctx->env.no_http = getenv("NO_HTTP");
+	ctx->env.path_info = getenv("PATH_INFO");
+	ctx->env.query_string = getenv("QUERY_STRING");
+	ctx->env.request_method = getenv("REQUEST_METHOD");
+	ctx->env.script_name = getenv("SCRIPT_NAME");
+	ctx->env.server_name = getenv("SERVER_NAME");
+	ctx->env.server_port = getenv("SERVER_PORT");
 	ctx->page.mimetype = "text/html";
 	ctx->page.charset = PAGE_ENCODING;
 	ctx->page.filename = NULL;
-- 
1.8.2.411.g65a544e





More information about the CGit mailing list