Fossil SCM

Clear all environment variables prior to invoking a CGI extension. (Works on posix - need to fix it for windows.)

drh 2019-08-01 19:30 trunk
Commit ed63bdd71e747401ba5044eadabc7c067830e1f3badb37082da51fabc7b12aa3
2 files changed +1 +11
--- src/extcgi.c
+++ src/extcgi.c
@@ -210,10 +210,11 @@
210210
cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0);
211211
cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES",
212212
db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q",
213213
g.zLogin ? g.zLogin : "nobody"), 0);
214214
cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0");
215
+ fossil_clearenv();
215216
for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){
216217
const char *zVal = P(azCgiEnv[i]);
217218
if( zVal ) fossil_setenv(azCgiEnv[i], zVal);
218219
}
219220
fossil_setenv("HTTP_ACCEPT_ENCODING","");
220221
--- src/extcgi.c
+++ src/extcgi.c
@@ -210,10 +210,11 @@
210 cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0);
211 cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES",
212 db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q",
213 g.zLogin ? g.zLogin : "nobody"), 0);
214 cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0");
 
215 for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){
216 const char *zVal = P(azCgiEnv[i]);
217 if( zVal ) fossil_setenv(azCgiEnv[i], zVal);
218 }
219 fossil_setenv("HTTP_ACCEPT_ENCODING","");
220
--- src/extcgi.c
+++ src/extcgi.c
@@ -210,10 +210,11 @@
210 cgi_set_parameter_nocopy("FOSSIL_URI", g.zTop, 0);
211 cgi_set_parameter_nocopy("FOSSIL_CAPABILITIES",
212 db_text("","SELECT fullcap(cap) FROM user WHERE login=%Q",
213 g.zLogin ? g.zLogin : "nobody"), 0);
214 cgi_replace_parameter("GATEWAY_INTERFACE","CGI/1.0");
215 fossil_clearenv();
216 for(i=0; i<sizeof(azCgiEnv)/sizeof(azCgiEnv[0]); i++){
217 const char *zVal = P(azCgiEnv[i]);
218 if( zVal ) fossil_setenv(azCgiEnv[i], zVal);
219 }
220 fossil_setenv("HTTP_ACCEPT_ENCODING","");
221
+11
--- src/file.c
+++ src/file.c
@@ -1719,10 +1719,21 @@
17191719
/* NOTE: Cannot free the string on POSIX. */
17201720
/* fossil_free(zString); */
17211721
#endif
17221722
return rc;
17231723
}
1724
+
1725
+/*
1726
+** Clear all environment variables
1727
+*/
1728
+int fossil_clearenv(void){
1729
+#ifdef _WIN32
1730
+ /* FIXME: Not yet supported */
1731
+#else
1732
+ return clearenv();
1733
+#endif
1734
+}
17241735
17251736
/*
17261737
** Like fopen() but always takes a UTF8 argument.
17271738
**
17281739
** This function assumes ExtFILE. In other words, symbolic links
17291740
--- src/file.c
+++ src/file.c
@@ -1719,10 +1719,21 @@
1719 /* NOTE: Cannot free the string on POSIX. */
1720 /* fossil_free(zString); */
1721 #endif
1722 return rc;
1723 }
 
 
 
 
 
 
 
 
 
 
 
1724
1725 /*
1726 ** Like fopen() but always takes a UTF8 argument.
1727 **
1728 ** This function assumes ExtFILE. In other words, symbolic links
1729
--- src/file.c
+++ src/file.c
@@ -1719,10 +1719,21 @@
1719 /* NOTE: Cannot free the string on POSIX. */
1720 /* fossil_free(zString); */
1721 #endif
1722 return rc;
1723 }
1724
1725 /*
1726 ** Clear all environment variables
1727 */
1728 int fossil_clearenv(void){
1729 #ifdef _WIN32
1730 /* FIXME: Not yet supported */
1731 #else
1732 return clearenv();
1733 #endif
1734 }
1735
1736 /*
1737 ** Like fopen() but always takes a UTF8 argument.
1738 **
1739 ** This function assumes ExtFILE. In other words, symbolic links
1740

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button