diff -r 4b546c4f25ed -r 1c93281ca4bf src/server/safs/cgi.c --- a/src/server/safs/cgi.c Sat Dec 31 18:05:40 2016 +0100 +++ b/src/server/safs/cgi.c Fri Jan 13 09:53:55 2017 +0100 @@ -83,10 +83,13 @@ CGIProcess cgip; int ret = cgi_start(&cgip, path, argv, env); if(ret != REQ_PROCEED) { + util_env_free(env); + cgi_free_argv(argv); return ret; } util_env_free(env); + cgi_free_argv(argv); char buf[4096]; // I/O buffer ssize_t r; @@ -246,6 +249,7 @@ * -1: error */ static int parse_lines(CGIResponseParser *parser, char *buf, size_t len, int *pos) { + UcxAllocator a = util_pool_allocator(parser->sn->pool); sstr_t name; sstr_t value; WSBool space = TRUE; @@ -270,7 +274,7 @@ } value = sstrn(buf + value_begin, i - value_begin); - name = sstrlower(sstrtrim(name)); + name = sstrlower_a(&a, sstrtrim(name)); value = sstrtrim(value); if(name.length == 0 || value.length == 0) {