From bf5dfc444e11aa84b1ad193c1901b9919c5effac Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 1 May 2019 08:38:52 +0300 Subject: [PATCH] sql logger: ensure error string and context are valid UTF8 before trying to insert it --- classes/logger/sql.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/classes/logger/sql.php b/classes/logger/sql.php index a2f4cd32c..352d71324 100755 --- a/classes/logger/sql.php +++ b/classes/logger/sql.php @@ -15,6 +15,11 @@ class Logger_SQL { if (DB_TYPE == "mysql") $context = substr($context, 0, 65534); + // passed error message may contain invalid unicode characters, failing to insert an error here + // would break the execution entirely by generating an actual fatal error instead of a E_WARNING etc + $errstr = UConverter::transcode($errstr, 'UTF-8', 'UTF-8'); + $context = UConverter::transcode($context, 'UTF-8', 'UTF-8'); + $sth = $this->pdo->prepare("INSERT INTO ttrss_error_log (errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES (?, ?, ?, ?, ?, ?, NOW())");