Commit 5a22cb90 authored by Sergey Lyubka's avatar Sergey Lyubka

Fixing #327

parent 9d4d48e7
...@@ -1596,8 +1596,13 @@ static int convert_uri_to_file_name(struct mg_connection *conn, char *buf, ...@@ -1596,8 +1596,13 @@ static int convert_uri_to_file_name(struct mg_connection *conn, char *buf,
if (match_prefix(conn->ctx->config[CGI_EXTENSIONS], if (match_prefix(conn->ctx->config[CGI_EXTENSIONS],
strlen(conn->ctx->config[CGI_EXTENSIONS]), buf) > 0 && strlen(conn->ctx->config[CGI_EXTENSIONS]), buf) > 0 &&
(stat_result = mg_stat(buf, st)) == 0) { (stat_result = mg_stat(buf, st)) == 0) {
// Shift PATH_INFO block one character right, e.g.
// "/x.cgi/foo/bar\x00" => "/x.cgi\x00/foo/bar\x00"
// conn->path_info is pointing to the local variable "path" declared
// in handle_request(), so PATH_INFO not valid after
// handle_request returns.
conn->path_info = p + 1; conn->path_info = p + 1;
memmove(p + 2, p + 1, strlen(p + 1)); memmove(p + 2, p + 1, strlen(p + 1) + 1); // +1 is for trailing \0
p[1] = '/'; p[1] = '/';
break; break;
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment