From f8145d61ecbc6f4ef553365516537e36241f4a2f Mon Sep 17 00:00:00 2001
From: Susanne Moog <look@susi.dev>
Date: Fri, 21 Feb 2020 16:26:42 +0100
Subject: [PATCH] [BUGFIX] Use json_encode instead of implode

To ensure unique identifiers for query entries the
backtrace is considered as part of the hash. As the
backtrace is multidimensional, stringification is no
longer done by using implode.

Resolves: #90449
Releases: master, 9.5
Change-Id: I920591c8c3df99aea5a2362c416e938b425e32a3
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63351
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
---
 .../adminpanel/Classes/Modules/Debug/QueryInformation.php       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/typo3/sysext/adminpanel/Classes/Modules/Debug/QueryInformation.php b/typo3/sysext/adminpanel/Classes/Modules/Debug/QueryInformation.php
index 5ab69ec2a48a..f7e77c036fc2 100644
--- a/typo3/sysext/adminpanel/Classes/Modules/Debug/QueryInformation.php
+++ b/typo3/sysext/adminpanel/Classes/Modules/Debug/QueryInformation.php
@@ -97,7 +97,7 @@ class QueryInformation extends AbstractSubModule implements DataProviderInterfac
     {
         $groupedQueries = [];
         foreach ($queries as $query) {
-            $identifier = sha1($query['sql']) . sha1(implode(',', $query['backtrace']));
+            $identifier = sha1($query['sql']) . sha1(json_encode($query['backtrace']));
             if (is_array($query['params'])) {
                 foreach ($query['params'] as $k => $param) {
                     if (is_array($param)) {
-- 
GitLab