From 3323ae78ce4e021b4ffc00b96770fc23bbbc8e47 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 20 Nov 2021 16:11:44 +0300 Subject: [PATCH] * sql_bool_to_bool: make parameter nullable * errorhandler: don't try to truncate null strings * UrlHelper::rewrite_relative: fix undefined offset warnings for URLs that lack schema/host (data: etc) --- classes/urlhelper.php | 4 ++-- include/errorhandler.php | 2 +- include/functions.php | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/classes/urlhelper.php b/classes/urlhelper.php index 91e1d4822..9bb4da962 100644 --- a/classes/urlhelper.php +++ b/classes/urlhelper.php @@ -89,8 +89,8 @@ class UrlHelper { } else { $base_parts = parse_url($base_url); - $rel_parts['host'] = $base_parts['host']; - $rel_parts['scheme'] = $base_parts['scheme']; + $rel_parts['host'] = $base_parts['host'] ?? ""; + $rel_parts['scheme'] = $base_parts['scheme'] ?? ""; if (isset($rel_parts['path'])) { diff --git a/include/errorhandler.php b/include/errorhandler.php index 09d6bd7bc..ff2af8cd0 100644 --- a/include/errorhandler.php +++ b/include/errorhandler.php @@ -19,7 +19,7 @@ function format_backtrace($trace): string { array_push($fmt_args, "[" . truncate_string(json_encode($a), 256, "...")) . "]"; } else if (is_resource($a)) { array_push($fmt_args, truncate_string(get_resource_type($a), 256, "...")); - } else { + } else if ($a) { array_push($fmt_args, truncate_string($a, 256, "...")); } } diff --git a/include/functions.php b/include/functions.php index af4819f00..14de32e95 100644 --- a/include/functions.php +++ b/include/functions.php @@ -341,7 +341,12 @@ } } - function sql_bool_to_bool(string $s): bool { + /** Convert values accepted by tt-rss as true/false to PHP booleans + * @see https://tt-rss.org/wiki/ApiReference#boolean-values + * @param null|string $s null values are considered false + * @return bool + */ + function sql_bool_to_bool(?string $s): bool { return $s && ($s !== "f" && $s !== "false"); //no-op for PDO, backwards compat for legacy layer }