From mboxrd@z Thu Jan 1 00:00:00 1970 From: cgit at cryptocrack.de (Lukas Fleischer) Date: Wed, 10 Apr 2013 12:30:52 +0200 Subject: [PATCH] cgit.c: Do not restore unset environment variables Message-ID: <1365589852-9819-1-git-send-email-cgit@cryptocrack.de> getenv() returns a NULL pointer if the specified variable name cannot be found in the environment. However, some setenv() implementations crash if a NULL pointer is passed as second argument. Only restore variables that are not NULL. See commit d96d2c98ebc4c2d3765f5b35c4142e0e828a421b for a related patch. Signed-off-by: Lukas Fleischer --- cgit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cgit.c b/cgit.c index 0bf8972..4dadd97 100644 --- a/cgit.c +++ b/cgit.c @@ -486,8 +486,10 @@ static int prepare_repo_cmd(struct cgit_context *ctx) init_display_notes(NULL); /* We restore the unset variables afterward. */ - setenv("HOME", user_home, 1); - setenv("XDG_CONFIG_HOME", xdg_home, 1); + if (user_home) + setenv("HOME", user_home, 1); + if (xdg_home) + setenv("XDG_CONFIG_HOME", xdg_home, 1); if (nongit) { const char *name = ctx->repo->name; -- 1.8.2.675.gda3bb24.dirty