diff options
| -rw-r--r-- | doc/contributions.txt | 2 | ||||
| -rw-r--r-- | indra/newview/llchatbar.cpp | 29 | ||||
| -rw-r--r-- | indra/newview/llnearbychatbar.cpp | 32 | 
3 files changed, 50 insertions, 13 deletions
| diff --git a/doc/contributions.txt b/doc/contributions.txt index fa2737a479..6edb727682 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -120,6 +120,8 @@ Angus Boyd  	VWR-592  Ann Congrejo  	CT-193 +Ardy Lay +	VWR-19499  Argent Stonecutter  	VWR-68  Armin Weatherwax diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp index 967db21244..7d82ec3a71 100644 --- a/indra/newview/llchatbar.cpp +++ b/indra/newview/llchatbar.cpp @@ -673,11 +673,30 @@ public:  	bool handle(const LLSD& tokens, const LLSD& query_map,  				LLMediaCtrl* web)  	{ -		if (tokens.size() < 2) return false; -		S32 channel = tokens[0].asInteger(); -		std::string mesg = tokens[1].asString(); -		send_chat_from_viewer(mesg, CHAT_TYPE_NORMAL, channel); -		return true; +		bool retval = false; +		// Need at least 2 tokens to have a valid message. +		if (tokens.size() < 2)  +		{ +			retval = false; +		} +		else +		{ +			S32 channel = tokens[0].asInteger(); +			// VWR-19499 Restrict function to chat channels greater than 0. +			if ((channel > 0) && (channel < 2147483647)) +			{ +				retval = true; +				// Say mesg on channel +				std::string mesg = tokens[1].asString(); +				send_chat_from_viewer(mesg, CHAT_TYPE_NORMAL, channel); +			} +			else +			{ +				retval = false; +				// Tell us this is an unsupported SLurl. +			} +		} +		return retval;  	}  }; diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 4f9845d704..43630c13fd 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -865,14 +865,30 @@ public:  	bool handle(const LLSD& tokens, const LLSD& query_map,  				LLMediaCtrl* web)  	{ -		if (tokens.size() < 2) return false; -		S32 channel = tokens[0].asInteger(); - -		// Send unescaped message, see EXT-6353. -		std::string unescaped_mesg (LLURI::unescape(tokens[1].asString())); - -		send_chat_from_viewer(unescaped_mesg, CHAT_TYPE_NORMAL, channel); -		return true; +		bool retval = false; +		// Need at least 2 tokens to have a valid message. +		if (tokens.size() < 2) +		{ +			retval = false; +		} +		else +		{ +			S32 channel = tokens[0].asInteger(); +			// VWR-19499 Restrict function to chat channels greater than 0. +			if ((channel > 0) && (channel < 2147483647)) +			{ +				retval = true; +				// Send unescaped message, see EXT-6353. +				std::string unescaped_mesg (LLURI::unescape(tokens[1].asString())); +				send_chat_from_viewer(unescaped_mesg, CHAT_TYPE_NORMAL, channel); +			} +			else +			{ +				retval = false; +				// Tell us this is an unsupported SLurl. +			} +		} +		return retval;  	}  }; | 
