Skip to content
Snippets Groups Projects
Commit 8bed0558 authored by Christian Goetze's avatar Christian Goetze
Browse files
Propagate QAR-1814 to trunk.
parent 74e584ad
No related branches found
No related tags found
No related merge requests found
...@@ -4,6 +4,7 @@ project(llcommon) ...@@ -4,6 +4,7 @@ project(llcommon)
include(00-Common) include(00-Common)
include(LLCommon) include(LLCommon)
include(Boost)
include_directories( include_directories(
${EXPAT_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS}
...@@ -200,6 +201,7 @@ target_link_libraries( ...@@ -200,6 +201,7 @@ target_link_libraries(
${APR_LIBRARIES} ${APR_LIBRARIES}
${EXPAT_LIBRARIES} ${EXPAT_LIBRARIES}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${BOOST_REGEX_LIBRARY}
) )
include(LLAddBuildTest) include(LLAddBuildTest)
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include <deque> #include <deque>
#include "apr_base64.h" #include "apr_base64.h"
#include <boost/regex.hpp>
extern "C" extern "C"
{ {
...@@ -777,10 +778,17 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name) ...@@ -777,10 +778,17 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name)
case ELEMENT_BINARY: case ELEMENT_BINARY:
{ {
S32 len = apr_base64_decode_len(mCurrentContent.c_str()); // Regex is expensive, but only fix for whitespace in base64,
// created by python and other non-linden systems - DEV-39358
// Fortunately we have very little binary passing now,
// so performance impact shold be negligible. + poppy 2009-09-04
boost::regex r;
r.assign("\\s");
std::string stripped = boost::regex_replace(mCurrentContent, r, "");
S32 len = apr_base64_decode_len(stripped.c_str());
std::vector<U8> data; std::vector<U8> data;
data.resize(len); data.resize(len);
len = apr_base64_decode_binary(&data[0], mCurrentContent.c_str()); len = apr_base64_decode_binary(&data[0], stripped.c_str());
data.resize(len); data.resize(len);
value = data; value = data;
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment