[BUGFIX] Use EXEC_TIME for sys_log entry instead of time() 22/52822/2
authorHelmut Hummel <typo3@helhum.io>
Wed, 17 May 2017 12:11:04 +0000 (14:11 +0200)
committerHelmut Hummel <typo3@helhum.io>
Thu, 18 May 2017 09:48:54 +0000 (11:48 +0200)
DataHandler does a lookup in sys_log table after it performed
its operations to find relevant error entries for the current request.

It determines relevance by looking for entries with the same
timestamp as $GLOBALS['EXEC_TIME'].

However error log entries are written using time(). Now if the
DataHandler operations take longer than one second, or the log entry
is written directly before a next tick, it can happen, that errors
will not be detected during the lookup process.

Since such errors are exposed to the user, it can happen that an operation
fails, but the users will not be notified.

Fix this by using $GLOBALS['EXEC_TIME'] when writing the log entries.

Resolves: #81244
Releases: master, 8.7, 7.6
Change-Id: Ic22b5f51ba4e10991be4a59ae28cb1f77a91c71e
Reviewed-on: https://review.typo3.org/52822
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Reviewed-by: Felix Rauch <rauch@skaiamail.de>
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Tested-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Philipp Gampe <philipp.gampe@typo3.org>
Tested-by: Philipp Gampe <philipp.gampe@typo3.org>
Reviewed-by: Helmut Hummel <typo3@helhum.io>
Tested-by: Helmut Hummel <typo3@helhum.io>
typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php

index cfa2e4a..56ee35f 100644 (file)
@@ -2305,7 +2305,7 @@ class BackendUserAuthentication extends AbstractUserAuthentication
             'tablename' => $tablename,
             'recuid' => (int)$recuid,
             'IP' => (string)GeneralUtility::getIndpEnv('REMOTE_ADDR'),
-            'tstamp' => time(),
+            'tstamp' => $GLOBALS['EXEC_TIME'] ?? time(),
             'event_pid' => (int)$event_pid,
             'NEWid' => $NEWid,
             'workspace' => $this->workspace