X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/1b09cbd303d889ec2636127584d57b7f1b70c25e..978275222307f6a23dba5b093189f162a7ec2351:/cgit.c diff --git a/cgit.c b/cgit.c index f4dd6ef..e498030 100644 --- a/cgit.c +++ b/cgit.c @@ -29,15 +29,17 @@ void add_mimetype(const char *name, const char *value) struct cgit_filter *new_filter(const char *cmd, int extra_args) { struct cgit_filter *f; + int args_size = 0; if (!cmd || !cmd[0]) return NULL; f = xmalloc(sizeof(struct cgit_filter)); f->cmd = xstrdup(cmd); - f->argv = xmalloc((2 + extra_args) * sizeof(char *)); + args_size = (2 + extra_args) * sizeof(char *); + f->argv = xmalloc(args_size); + memset(f->argv, 0, args_size); f->argv[0] = f->cmd; - f->argv[1] = NULL; return f; } @@ -755,8 +757,11 @@ int main(int argc, const char **argv) * that virtual-root equals SCRIPT_NAME, minus any possibly * trailing slashes. */ - if (!ctx.cfg.virtual_root) + if (!ctx.cfg.virtual_root && ctx.cfg.script_name) { ctx.cfg.virtual_root = trim_end(ctx.cfg.script_name, '/'); + if (!ctx.cfg.virtual_root) + ctx.cfg.virtual_root = ""; + } /* If no url parameter is specified on the querystring, lets * use PATH_INFO as url. This allows cgit to work with virtual