Fossil SCM
Make sure all CGI environment variables are loaded into the CGI cache prior to clearing the environment, when launching extension CGIs.
Commit
c6b4d80e9c359498a4027057dcfac0e00cbe5fe7e16f53e4549330ae21ae56f9
Parent
f5fe22102641d17…
1 file changed
+3
+3
| --- src/extcgi.c | ||
| +++ src/extcgi.c | ||
| @@ -211,10 +211,13 @@ | ||
| 211 | 211 | cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0); |
| 212 | 212 | cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES", |
| 213 | 213 | db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q", |
| 214 | 214 | g.zLogin ? g.zLogin : "nobody"), 0); |
| 215 | 215 | cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0"); |
| 216 | + for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){ | |
| 217 | + (void)P(azCgiEnv[i]); | |
| 218 | + } | |
| 216 | 219 | fossil_clearenv(); |
| 217 | 220 | for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){ |
| 218 | 221 | const char *zVal = P(azCgiEnv[i]); |
| 219 | 222 | if( zVal ) fossil_setenv(azCgiEnv[i], zVal); |
| 220 | 223 | } |
| 221 | 224 |
| --- src/extcgi.c | |
| +++ src/extcgi.c | |
| @@ -211,10 +211,13 @@ | |
| 211 | cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0); |
| 212 | cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES", |
| 213 | db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q", |
| 214 | g.zLogin ? g.zLogin : "nobody"), 0); |
| 215 | cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0"); |
| 216 | fossil_clearenv(); |
| 217 | for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){ |
| 218 | const char *zVal = P(azCgiEnv[i]); |
| 219 | if( zVal ) fossil_setenv(azCgiEnv[i], zVal); |
| 220 | } |
| 221 |
| --- src/extcgi.c | |
| +++ src/extcgi.c | |
| @@ -211,10 +211,13 @@ | |
| 211 | cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0); |
| 212 | cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES", |
| 213 | db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q", |
| 214 | g.zLogin ? g.zLogin : "nobody"), 0); |
| 215 | cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0"); |
| 216 | for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){ |
| 217 | (void)P(azCgiEnv[i]); |
| 218 | } |
| 219 | fossil_clearenv(); |
| 220 | for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){ |
| 221 | const char *zVal = P(azCgiEnv[i]); |
| 222 | if( zVal ) fossil_setenv(azCgiEnv[i], zVal); |
| 223 | } |
| 224 |