From 303c9d4a543e5d984f980001e5875094191d6f88 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Mon, 31 May 2021 01:35:49 -0400 Subject: [PATCH] Check Content\Item::replaceTag return for false return value before using it - Address https://github.com/friendica/friendica/issues/10169#issuecomment-835547443 - Remove unused code in Content\Item::replaceTag --- mod/item.php | 31 ++++++++++++++++--------------- src/Content/Item.php | 10 ---------- src/Content/Text/BBCode.php | 4 +--- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/mod/item.php b/mod/item.php index 71793f14dc..208477b19a 100644 --- a/mod/item.php +++ b/mod/item.php @@ -410,21 +410,22 @@ function item_post(App $a) { } } - $success = ItemHelper::replaceTag($body, $inform, local_user() ? local_user() : $profile_uid, $tag, $network); - if ($success['replaced']) { - $tagged[] = $tag; - } - // When the forum is private or the forum is addressed with a "!" make the post private - if (!empty($success['contact']['prv']) || ($tag_type == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION])) { - $private_forum = $success['contact']['prv']; - $only_to_forum = ($tag_type == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION]); - $private_id = $success['contact']['id']; - $forum_contact = $success['contact']; - } elseif (!empty($success['contact']['forum']) && ($str_contact_allow == '<' . $success['contact']['id'] . '>')) { - $private_forum = false; - $only_to_forum = true; - $private_id = $success['contact']['id']; - $forum_contact = $success['contact']; + if ($success = ItemHelper::replaceTag($body, $inform, local_user() ? local_user() : $profile_uid, $tag, $network)) { + if ($success['replaced']) { + $tagged[] = $tag; + } + // When the forum is private or the forum is addressed with a "!" make the post private + if (!empty($success['contact']['prv']) || ($tag_type == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION])) { + $private_forum = $success['contact']['prv']; + $only_to_forum = ($tag_type == Tag::TAG_CHARACTER[Tag::EXCLUSIVE_MENTION]); + $private_id = $success['contact']['id']; + $forum_contact = $success['contact']; + } elseif (!empty($success['contact']['forum']) && ($str_contact_allow == '<' . $success['contact']['id'] . '>')) { + $private_forum = false; + $only_to_forum = true; + $private_id = $success['contact']['id']; + $forum_contact = $success['contact']; + } } } diff --git a/src/Content/Item.php b/src/Content/Item.php index f0d08d48e6..56836903b3 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -127,16 +127,6 @@ class Item $tag_type = substr($tag, 0, 1); //is it already replaced? if (strpos($tag, '[url=')) { - // Checking for the alias that is used for OStatus - $pattern = '/[@!]\[url\=(.*?)\](.*?)\[\/url\]/ism'; - if (preg_match($pattern, $tag, $matches)) { - $data = Contact::getByURL($matches[1], false, ['alias', 'nick']); - - if ($data['alias'] != '') { - $newtag = '@[url=' . $data['alias'] . ']' . $data['nick'] . '[/url]'; - } - } - return $replaced; } diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 03ccd889a4..2bb563e74a 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -2196,9 +2196,7 @@ class BBCode } } - $success = Item::replaceTag($body, $inform, $profile_uid, $tag, $network); - - if ($success['replaced']) { + if (($success = Item::replaceTag($body, $inform, $profile_uid, $tag, $network)) && $success['replaced']) { $tagged[] = $tag; } }