diff --git a/indra/newview/llviewertexlayer.cpp b/indra/newview/llviewertexlayer.cpp
index 87400d03b896c214d74d9a3ad4d456e5798ea754..54308bd19e907fe033b8e8ee6acab43e8193f04d 100644
--- a/indra/newview/llviewertexlayer.cpp
+++ b/indra/newview/llviewertexlayer.cpp
@@ -491,10 +491,10 @@ void LLViewerTexLayerSetBuffer::doUpload()
 			LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE);
 			file_size = file.getSize();
 			U8* data = integrity_test->allocateData(file_size);
-			file.read(data, file_size);
 			std::string asset_data;
 			if (data)
 			{
+				file.read(data, file_size);
 				asset_data.append(reinterpret_cast< char const*> (data), file_size);
 				valid = integrity_test->validate(data, file_size); // integrity_test will delete 'data'
 			}