summaryrefslogtreecommitdiff
path: root/indra/llimage/llimagej2c.cpp
diff options
context:
space:
mode:
authorGraham Madarasz <graham@lindenlab.com>2018-03-06 09:48:44 -0800
committerGraham Madarasz <graham@lindenlab.com>2018-03-06 09:48:44 -0800
commitb9016f99f3abf8b135942e60a5a2d8cd8f0f4e75 (patch)
tree7e0dc18306309254b5d8cd5f40ac6ce897409242 /indra/llimage/llimagej2c.cpp
parentf8134b152d1a7273e27a224eac11d52c0a6f94c9 (diff)
parentaf9069edbff9df73cd75753b696aabd1ae8769b5 (diff)
Merged lindenlab/viewer-cougar into default
Diffstat (limited to 'indra/llimage/llimagej2c.cpp')
-rw-r--r--indra/llimage/llimagej2c.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/indra/llimage/llimagej2c.cpp b/indra/llimage/llimagej2c.cpp
index 68694496bc..c40df009d8 100644
--- a/indra/llimage/llimagej2c.cpp
+++ b/indra/llimage/llimagej2c.cpp
@@ -369,19 +369,28 @@ bool LLImageJ2C::loadAndValidate(const std::string &filename)
else
{
U8 *data = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), file_size);
- apr_size_t bytes_read = file_size;
- apr_status_t s = apr_file_read(apr_file, data, &bytes_read); // modifies bytes_read
- infile.close() ;
-
- if (s != APR_SUCCESS || (S32)bytes_read != file_size)
+ if (!data)
{
- FREE_MEM(LLImageBase::getPrivatePool(), data);
- setLastError("Unable to read entire file");
+ infile.close();
+ setLastError("Out of memory", filename);
res = false;
}
else
{
- res = validate(data, file_size);
+ apr_size_t bytes_read = file_size;
+ apr_status_t s = apr_file_read(apr_file, data, &bytes_read); // modifies bytes_read
+ infile.close();
+
+ if (s != APR_SUCCESS || (S32)bytes_read != file_size)
+ {
+ FREE_MEM(LLImageBase::getPrivatePool(), data);
+ setLastError("Unable to read entire file");
+ res = false;
+ }
+ else
+ {
+ res = validate(data, file_size);
+ }
}
}