summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2021-01-11 17:07:03 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2021-01-11 17:07:03 +0200
commit03921adb1211c6def0ce5c791e2455643142a92a (patch)
treeb03662cd875f79790958948ebdcfb70834125f60 /indra/llui
parent55267aab80c945da44587b62822095838ac4a6bc (diff)
SL-2202 Add exception handling around boost::regex_match() calls in the viewer
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llurlentry.cpp3
-rw-r--r--indra/llui/llurlregistry.cpp12
2 files changed, 4 insertions, 11 deletions
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index e6835f73fb..ff742a9530 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -35,6 +35,7 @@
#include "llavatarnamecache.h"
#include "llcachename.h"
+#include "llregex.h"
#include "lltrans.h"
#include "lluicolortable.h"
#include "message.h"
@@ -1388,7 +1389,7 @@ std::string LLUrlEntryIcon::getIcon(const std::string &url)
// Grep icon info between <icon>...</icon> tags
// matches[1] contains the icon name/path
boost::match_results<std::string::const_iterator> matches;
- mIcon = (boost::regex_match(url, matches, mPattern) && matches[1].matched)
+ mIcon = (ll_regex_match(url, matches, mPattern) && matches[1].matched)
? matches[1]
: LLStringUtil::null;
LLStringUtil::trim(mIcon);
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index ba6fa1e2e9..5f44475bd7 100644
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -26,10 +26,10 @@
*/
#include "linden_common.h"
+#include "llregex.h"
#include "llurlregistry.h"
#include "lluriparser.h"
-#include <boost/regex.hpp>
// default dummy callback that ignores any label updates from the server
void LLUrlRegistryNullCallback(const std::string &url, const std::string &label, const std::string& icon)
@@ -107,15 +107,7 @@ static bool matchRegex(const char *text, boost::regex regex, U32 &start, U32 &en
boost::cmatch result;
bool found;
- // regex_search can potentially throw an exception, so check for it
- try
- {
- found = boost::regex_search(text, result, regex);
- }
- catch (std::runtime_error &)
- {
- return false;
- }
+ found = ll_regex_search(text, result, regex);
if (! found)
{