? 431776-cron.patch ? 582948-update.patch ? 607238-permissions-uninstall.patch ? 686858-node-access-priority.patch ? 687578-aggregator.patch ? 690828-block-ahah.patch ? 700518-doc.patch ? 700518-revised.patch ? 716792.patch ? 732542-redirect.patch ? sites/all/modules/artwork ? sites/all/modules/cck ? sites/all/modules/coder ? sites/all/modules/delay ? sites/all/modules/devel ? sites/all/modules/domain ? sites/all/modules/domain_prefix ? sites/all/modules/domain_theme ? sites/all/modules/domain_user ? sites/all/modules/domain_views ? sites/all/modules/example ? sites/all/modules/pgp ? sites/all/modules/rainbow ? sites/all/modules/role_access ? sites/all/modules/role_edit ? sites/all/modules/secure_permissions ? sites/all/modules/views ? sites/default/files ? sites/default/private Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.1126 diff -u -p -r1.1126 common.inc --- includes/common.inc 9 Mar 2010 03:39:44 -0000 1.1126 +++ includes/common.inc 10 Mar 2010 21:51:02 -0000 @@ -4385,6 +4385,14 @@ function drupal_cron_run() { // Allow execution to continue even if the request gets canceled. @ignore_user_abort(TRUE); + // Prevent session information from being saved while the cron is running. + drupal_save_session(FALSE); + + // Force the current user to anonymous to ensure consistent permissions on + // cron runs. + $original_user = $GLOBALS['user']; + $GLOBALS['user'] = drupal_anonymous_user(); + // Try to allocate enough time to run all the hook_cron implementations. drupal_set_time_limit(240); @@ -4445,6 +4453,10 @@ function drupal_cron_run() { $queue->deleteItem($item); } } + // Restore the user. + $GLOBALS['user'] = $original_user; + drupal_save_session(TRUE); + return $return; }