summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/session/session.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 8c604631aa..be86dcae7f 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -2052,13 +2052,14 @@ static PHP_FUNCTION(session_regenerate_id)
} else {
ret = PS(mod)->s_write(&PS(mod_data), PS(id), ZSTR_EMPTY_ALLOC(), PS(gc_maxlifetime));
}
- PS(mod)->s_close(&PS(mod_data));
if (ret == FAILURE) {
+ PS(mod)->s_close(&PS(mod_data));
PS(session_status) = php_session_none;
php_error_docref(NULL, E_WARNING, "Session write failed. ID: %s (path: %s)", PS(mod)->s_name, PS(save_path));
RETURN_FALSE;
}
}
+ PS(mod)->s_close(&PS(mod_data));
/* New session data */
if (PS(session_vars)) {