
alo at alobbs
Mar 29, 2006, 1:00 AM
Post #1 of 1
(47 views)
Permalink
|
|
r236 - in cherokee: . cherokee
|
|
Author: alo Date: 2006-03-29 10:00:31 +0200 (Wed, 29 Mar 2006) New Revision: 236 Modified: cherokee/ChangeLog cherokee/cherokee/handler_cgi_base.c Log: Modified: cherokee/ChangeLog =================================================================== --- cherokee/ChangeLog 2006-03-28 14:20:52 UTC (rev 235) +++ cherokee/ChangeLog 2006-03-29 08:00:31 UTC (rev 236) @@ -1,3 +1,9 @@ +2006-03-29 Alvaro Lopez Ortega <alvaro at alobbs.com> + + * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp): + Under some circumstances it was trying to access NULL. Fixed by + olivier-ml1 at oleastre.be + 2006-03-28 Alvaro Lopez Ortega <alvaro at alobbs.com> * cherokee/ext_source.c (cherokee_ext_source_spawn_srv): Cleaned Modified: cherokee/cherokee/handler_cgi_base.c =================================================================== --- cherokee/cherokee/handler_cgi_base.c 2006-03-28 14:20:52 UTC (rev 235) +++ cherokee/cherokee/handler_cgi_base.c 2006-03-29 08:00:31 UTC (rev 236) @@ -327,6 +327,7 @@ cuint_t len = 0; char *p = ""; cherokee_buffer_t tmp = CHEROKEE_BUF_INIT; + cherokee_buffer_t *name; /* Add user defined variables at the beginning, * these have precedence.. @@ -357,14 +358,20 @@ if (cgi->param.len > 0) { /* phpcgi request */ - p = cgi->param.buf + conn->local_directory.len - 1; - len = (cgi->param.buf + cgi->param.len) - p; + name = &cgi->param; } else { /* cgi, scgi or fastcgi */ - p = cgi->executable.buf + conn->local_directory.len - 1; - len = (cgi->executable.buf + cgi->executable.len) - p; + name = &cgi->executable; } + + if (conn->local_directory.len > 0){ + p = name->buf + conn->local_directory.len - 1; + len = (name->buf + name->len) - p; + } else { + p = name->buf; + len = name->len; + } } cherokee_buffer_clean (&tmp);
|