These reflect the values of environment variables and should never be
changed. Add another xstrdup() when we assign environment variables to
strings that are potentially non-constant.
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
ctx->page.etag = NULL;
memset(&ctx->cfg.mimetypes, 0, sizeof(struct string_list));
if (ctx->env.script_name)
- ctx->cfg.script_name = ctx->env.script_name;
+ ctx->cfg.script_name = xstrdup(ctx->env.script_name);
if (ctx->env.query_string)
- ctx->qry.raw = ctx->env.query_string;
+ ctx->qry.raw = xstrdup(ctx->env.query_string);
if (!ctx->env.cgit_config)
ctx->env.cgit_config = CGIT_CONFIG;
}
};
struct cgit_environment {
- char *cgit_config;
- char *http_host;
- char *https;
- char *no_http;
- char *path_info;
- char *query_string;
- char *request_method;
- char *script_name;
- char *server_name;
- char *server_port;
+ const char *cgit_config;
+ const char *http_host;
+ const char *https;
+ const char *no_http;
+ const char *path_info;
+ const char *query_string;
+ const char *request_method;
+ const char *script_name;
+ const char *server_name;
+ const char *server_port;
};
struct cgit_context {