diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp index e2285d0a9c91dc61ae9f20f5c5370f8305287424..9942bc0cf8803eaaf8cbc61342d3827df8106fed 100644 --- a/indra/llcommon/lluri.cpp +++ b/indra/llcommon/lluri.cpp @@ -203,7 +203,7 @@ namespace std::string escapeUriQuery(const std::string& s) { return LLURI::escape(s, unreserved() + ":@?&$;*+=%/"); } std::string escapeUriData(const std::string& s) - { return LLURI::escape(s, unreserved()); } + { return LLURI::escape(s, unreserved() + "%"); } std::string escapeUriPath(const std::string& s) { return LLURI::escape(s, path()); } } @@ -249,7 +249,8 @@ std::string LLURI::escapePathAndData(const std::string &str) // Notes: File can be partially pre-escaped, that's why escaping ignores '%' // It somewhat limits user from displaying strings like "%20" in text - // but that's how viewer worked for a while and user can double-encode it + // but that's how viewer worked for a while and user can double-escape it + // Header doesn't need escaping result = header + escapeUriData(data);