diff --git a/mongoose.c b/mongoose.c index 86aaf4a..613daa4 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3060,7 +3060,7 @@ static char *addenv(struct cgi_env_block *block, const char *fmt, ...) { static void prepare_cgi_environment(struct mg_connection *conn, const char *prog, struct cgi_env_block *blk) { - const char *s, *slash; + const char *s; struct vec var_vec; char *p, src_addr[20]; int i; @@ -3088,11 +3088,10 @@ static void prepare_cgi_environment(struct mg_connection *conn, // SCRIPT_NAME assert(conn->request_info.uri[0] == '/'); - slash = strrchr(conn->request_info.uri, '/'); if ((s = strrchr(prog, '/')) == NULL) s = prog; - addenv(blk, "SCRIPT_NAME=%.*s%s", (int) (slash - conn->request_info.uri), - conn->request_info.uri, s); + addenv(blk, "SCRIPT_NAME=%.*s", (int) (strlen (conn->request_info.uri) - (conn->path_info ? strlen(conn->path_info) : 0)), + conn->request_info.uri); addenv(blk, "SCRIPT_FILENAME=%s", prog); addenv(blk, "PATH_TRANSLATED=%s", prog);