=== modified file 'includes/session.inc' --- includes/session.inc 2006-08-31 19:52:38 +0000 +++ includes/session.inc 2006-10-17 18:56:42 +0000 @@ -85,6 +85,14 @@ function sess_write($key, $value) { function sess_regenerate() { $old_session_id = session_id(); session_regenerate_id(); + + // This manual cookie reset is required to mitigate this issue http://bugs.php.net/bug.php?id=32802. + // This issue only arises in PHP versions before 4.4.0, and in certain drupal configurations. + // We destroy the session cookie on the client by setting the cookie to expire in the past (a negative value). + if (isset($_COOKIE[session_name()])) { + setcookie(session_name(), '', time() - 42000, '/'); + } + db_query("UPDATE {sessions} SET sid = '%s' WHERE sid = '%s'", session_id(), $old_session_id); } @@ -127,4 +135,4 @@ function sess_gc($lifetime) { db_query("DELETE FROM {sessions} WHERE timestamp < %d", time() - $lifetime); return TRUE; -} \ No newline at end of file +}