diff options
| -rw-r--r-- | indra/llcommon/llversionserver.h | 2 | ||||
| -rw-r--r-- | indra/llinventory/llparcel.cpp | 8 | ||||
| -rw-r--r-- | indra/llmessage/llcurl.cpp | 1 | ||||
| -rw-r--r-- | indra/lscript/lscript_byteconvert.h | 41 | ||||
| -rw-r--r-- | indra/newview/lltexturefetch.cpp | 2 | 
5 files changed, 26 insertions, 28 deletions
| diff --git a/indra/llcommon/llversionserver.h b/indra/llcommon/llversionserver.h index b9aa71b4dc..c57830e936 100644 --- a/indra/llcommon/llversionserver.h +++ b/indra/llcommon/llversionserver.h @@ -35,7 +35,7 @@  const S32 LL_VERSION_MAJOR = 1;  const S32 LL_VERSION_MINOR = 19;  const S32 LL_VERSION_PATCH = 1; -const S32 LL_VERSION_BUILD = 80913; +const S32 LL_VERSION_BUILD = 81484;  const char * const LL_CHANNEL = "Second Life Server"; diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index 7a84e1916f..81001a2c9d 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -216,8 +216,8 @@ void LLParcel::init(const LLUUID &owner_id,  	mMediaID.setNull();  	mMediaAutoScale = 0;  	mMediaLoop = TRUE; -	mObscureMedia = 0; -	mObscureMusic = 0; +	mObscureMedia = 1; +	mObscureMusic = 1;  	mMediaWidth = 0;  	mMediaHeight = 0; @@ -1850,8 +1850,8 @@ void LLParcel::clearParcel()      setMediaDesc(NULL);  	setMediaAutoScale(0);  	setMediaLoop(TRUE); -	mObscureMedia = 0; -	mObscureMusic = 0; +	mObscureMedia = 1; +	mObscureMusic = 1;  	mMediaWidth = 0;  	mMediaHeight = 0;  	setMusicURL(NULL); diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 8b9a45ff3f..8afcb6ba4f 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -121,7 +121,6 @@ void LLCurl::Responder::error(U32 status, const std::string& reason)  // virtual  void LLCurl::Responder::result(const LLSD& content)  { -	llwarns << "Virtual Function not implemented" << llendl;  }  // virtual diff --git a/indra/lscript/lscript_byteconvert.h b/indra/lscript/lscript_byteconvert.h index d0a5d574d0..e8b727b737 100644 --- a/indra/lscript/lscript_byteconvert.h +++ b/indra/lscript/lscript_byteconvert.h @@ -166,8 +166,15 @@ inline void bytestream_int2float(U8 *stream, S32 &offset)  inline bool bytestream2char(char *buffer, const U8 *stream, S32 &offset, S32 buffsize)  {  	S32 source_len = strlen( (const char *)stream+offset ); -	strncpy( buffer, (const char *)stream+offset, buffsize-1 ); -	buffer[buffsize-1] = 0; +	S32 copy_len = buffsize - 1; +	if( copy_len > source_len ) +	{ +		copy_len = source_len; +	} + +	// strncpy without \0 padding overhead +	memcpy( buffer, stream+offset, copy_len ); +	buffer[copy_len] = 0;  	offset += source_len + 1; // advance past source string, include terminating '\0' @@ -1073,28 +1080,20 @@ inline void safe_instruction_float2bytestream(U8 *stream, S32 &offset, F32 value  inline void safe_instruction_bytestream2char(char *buffer, U8 *stream, S32 &offset, S32 buffsize)  { -	bool safe; -	while (  (safe = safe_instruction_check_address(stream, offset, 1)) -		   && buffsize-- -		   &&(*buffer++ = *(stream + offset++))) -		; +	// This varies from the old method. Previously, we would copy up until we got an error, +	// then halt the script via safe_isntruction_check_address. Now we don't bother +	// copying a thing if there's an error. -	// Return if it ended in a null (success) or if script error handling is taking over -	if( !safe || (0 == *(buffer-1)) ) +	if( safe_instruction_check_address(stream, offset, strlen( (const char *)stream + offset ) + 1 ) )  	{ -		return; // Yep. Success. +		// Takes the same parms as this function. Won't overread, per above check. +		bytestream2char( buffer, stream, offset, buffsize ); +	} +	else +	{ +		// Truncate - no point in copying +		*buffer = 0;  	} - -	// Defensive mode. We copied at least one char and ran out of space before -	// null termination. Add the terminator... -	*(buffer-1) = 0; - -	// ...and advance offset past the end of the data as if we copied the rest. If we -	// violate the safety check, script error handling will protect us. No need to -	// keep advancing. -	while( safe_instruction_check_address(stream, offset, 1) -			&& *( stream + offset++ ) ) -		;  }  inline void safe_instruction_bytestream_count_char(U8 *stream, S32 &offset) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 9464146742..008eaccdc4 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -91,7 +91,7 @@ private:  		LLUUID mID;  	}; -	class HTTPGetResponder : public LLCurl::Responder +	class HTTPGetResponder : public LLHTTPClient::Responder  	{  	public:  		HTTPGetResponder(LLTextureFetch* fetcher, const LLUUID& id) | 
