From 17849bcb55f757e6271c7d3e21ab34ccec849e07 Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Wed, 12 Nov 2014 13:46:38 +0100 Subject: fixed session recursion - issue #60 --- session.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'session.c') diff --git a/session.c b/session.c index a3261c9..827c6b7 100644 --- a/session.c +++ b/session.c @@ -487,7 +487,6 @@ static php_ps_globals_43_44 *session_globals = NULL; #define SESSION_G(v) (session_globals->v) #endif -static ps_module *ps_mod_user = NULL; ps_serializer *(*suhosin_find_ps_serializer)(char *name TSRMLS_DC) = NULL; @@ -1018,14 +1017,14 @@ static void suhosin_hook_session_module(TSRMLS_D) static PHP_INI_MH(suhosin_OnUpdateSaveHandler) { int r; - char *tmp; - if ((ps_mod_user) && (SUHOSIN_G(s_original_mod) == ps_mod_user) && (strcmp(new_value, "user") == 0)) { + if (stage == PHP_INI_STAGE_RUNTIME && SESSION_G(session_status) == php_session_none && SUHOSIN_G(s_original_mod) + && strcmp(new_value, "user") == 0 && strcmp(((ps_module*)SUHOSIN_G(s_original_mod))->s_name, "user") == 0) { return SUCCESS; } SESSION_G(mod) = SUHOSIN_G(s_original_mod); - + r = old_OnUpdateSaveHandler(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC); suhosin_hook_session_module(TSRMLS_C); @@ -1095,12 +1094,6 @@ void suhosin_hook_session(TSRMLS_D) } #endif #endif - if (ps_mod_user == NULL) { - ps_mod_user = DL_FETCH_SYMBOL(module->handle, "ps_mod_user"); - if (ps_mod_user == NULL) { - ps_mod_user = DL_FETCH_SYMBOL(module->handle, "_ps_mod_user"); - } - } if (old_OnUpdateSaveHandler != NULL) { return; -- cgit v1.3