summaryrefslogtreecommitdiff
path: root/suhosin.c
diff options
context:
space:
mode:
authorStefan Esser2014-06-09 10:37:10 +0200
committerStefan Esser2014-06-09 10:37:10 +0200
commitfb0f51e922b597a46d1065437f716c3179e5506c (patch)
tree5958576a1aa087c7bfbdf76c6ef632d261905bb6 /suhosin.c
parent83bf21540d308a740c8835c4c3a104a5d2f761c5 (diff)
Added various improvements to rand()/mt_rand() protection
Diffstat (limited to 'suhosin.c')
-rw-r--r--suhosin.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/suhosin.c b/suhosin.c
index f0a94b9..0d1eba0 100644
--- a/suhosin.c
+++ b/suhosin.c
@@ -1015,10 +1015,11 @@ PHP_INI_BEGIN()
1015 ZEND_INI_ENTRY("suhosin.cookie.cryptlist", NULL, ZEND_INI_PERDIR|ZEND_INI_SYSTEM, OnUpdate_cookie_cryptlist) 1015 ZEND_INI_ENTRY("suhosin.cookie.cryptlist", NULL, ZEND_INI_PERDIR|ZEND_INI_SYSTEM, OnUpdate_cookie_cryptlist)
1016 ZEND_INI_ENTRY("suhosin.cookie.plainlist", NULL, ZEND_INI_PERDIR|ZEND_INI_SYSTEM, OnUpdate_cookie_plainlist) 1016 ZEND_INI_ENTRY("suhosin.cookie.plainlist", NULL, ZEND_INI_PERDIR|ZEND_INI_SYSTEM, OnUpdate_cookie_plainlist)
1017 1017
1018
1019 STD_ZEND_INI_BOOLEAN("suhosin.server.encode", "1", ZEND_INI_SYSTEM, OnUpdateBool, server_encode,zend_suhosin_globals, suhosin_globals) 1018 STD_ZEND_INI_BOOLEAN("suhosin.server.encode", "1", ZEND_INI_SYSTEM, OnUpdateBool, server_encode,zend_suhosin_globals, suhosin_globals)
1020 STD_ZEND_INI_BOOLEAN("suhosin.server.strip", "1", ZEND_INI_SYSTEM, OnUpdateBool, server_strip,zend_suhosin_globals, suhosin_globals) 1019 STD_ZEND_INI_BOOLEAN("suhosin.server.strip", "1", ZEND_INI_SYSTEM, OnUpdateBool, server_strip,zend_suhosin_globals, suhosin_globals)
1021 1020
1021 STD_PHP_INI_ENTRY("suhosin.rand.seedingkey", "", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateString, seedingkey, zend_suhosin_globals, suhosin_globals)
1022 STD_ZEND_INI_BOOLEAN("suhosin.rand.reseed_every_request", "0", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateMiscBool, reseed_every_request, zend_suhosin_globals, suhosin_globals)
1022 STD_ZEND_INI_BOOLEAN("suhosin.srand.ignore", "1", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateMiscBool, srand_ignore,zend_suhosin_globals, suhosin_globals) 1023 STD_ZEND_INI_BOOLEAN("suhosin.srand.ignore", "1", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateMiscBool, srand_ignore,zend_suhosin_globals, suhosin_globals)
1023 STD_ZEND_INI_BOOLEAN("suhosin.mt_srand.ignore", "1", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateMiscBool, mt_srand_ignore,zend_suhosin_globals, suhosin_globals) 1024 STD_ZEND_INI_BOOLEAN("suhosin.mt_srand.ignore", "1", ZEND_INI_SYSTEM|ZEND_INI_PERDIR, OnUpdateMiscBool, mt_srand_ignore,zend_suhosin_globals, suhosin_globals)
1024 1025
@@ -1239,6 +1240,11 @@ PHP_RSHUTDOWN_FUNCTION(suhosin)
1239 1240
1240 SUHOSIN_G(abort_request) = 0; 1241 SUHOSIN_G(abort_request) = 0;
1241 1242
1243 if (SUHOSIN_G(reseed_every_request)) {
1244 SUHOSIN_G(r_is_seeded) = 0;
1245 SUHOSIN_G(mt_is_seeded) = 0;
1246 }
1247
1242 if (SUHOSIN_G(decrypted_cookie)) { 1248 if (SUHOSIN_G(decrypted_cookie)) {
1243 efree(SUHOSIN_G(decrypted_cookie)); 1249 efree(SUHOSIN_G(decrypted_cookie));
1244 SUHOSIN_G(decrypted_cookie)=NULL; 1250 SUHOSIN_G(decrypted_cookie)=NULL;
@@ -1301,6 +1307,9 @@ PHP_MINFO_FUNCTION(suhosin)
1301 if (zend_hash_find(EG(ini_directives), "suhosin.session.cryptkey", sizeof("suhosin.session.cryptkey"), (void **) &i)==SUCCESS) { 1307 if (zend_hash_find(EG(ini_directives), "suhosin.session.cryptkey", sizeof("suhosin.session.cryptkey"), (void **) &i)==SUCCESS) {
1302 i->displayer = suhosin_ini_displayer; 1308 i->displayer = suhosin_ini_displayer;
1303 } 1309 }
1310 if (zend_hash_find(EG(ini_directives), "suhosin.rand.seedingkey", sizeof("suhosin.rand.seedingkey"), (void **) &i)==SUCCESS) {
1311 i->displayer = suhosin_ini_displayer;
1312 }
1304 } 1313 }
1305 1314
1306 DISPLAY_INI_ENTRIES(); 1315 DISPLAY_INI_ENTRIES();
@@ -1314,6 +1323,9 @@ PHP_MINFO_FUNCTION(suhosin)
1314 if (zend_hash_find(EG(ini_directives), "suhosin.session.cryptkey", sizeof("suhosin.session.cryptkey"), (void **) &i)==SUCCESS) { 1323 if (zend_hash_find(EG(ini_directives), "suhosin.session.cryptkey", sizeof("suhosin.session.cryptkey"), (void **) &i)==SUCCESS) {
1315 i->displayer = NULL; 1324 i->displayer = NULL;
1316 } 1325 }
1326 if (zend_hash_find(EG(ini_directives), "suhosin.rand.seedingkey", sizeof("suhosin.rand.seedingkey"), (void **) &i)==SUCCESS) {
1327 i->displayer = NULL;
1328 }
1317 } 1329 }
1318 1330
1319} 1331}