summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2010-09-07 10:48:06 -0600
committerXiaohong Bao <bao@lindenlab.com>2010-09-07 10:48:06 -0600
commit497d35af488f25061ea6833539cd8e3c05e4a5b2 (patch)
tree5adc3e103bfbed2a6142a8871886fca66aa8cf2c
parenta6e94d201612dcf601aba2a665ddaf86745c9803 (diff)
fix for VWR-22813: crash at [1] LLImageBase::allocateData(int) [secondlife-bin llimage.cpp]
-rw-r--r--indra/llimage/llimage.cpp2
-rw-r--r--indra/newview/llviewerwindow.cpp9
2 files changed, 9 insertions, 2 deletions
diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp
index be0ab9fcb7..5c33b675ca 100644
--- a/indra/llimage/llimage.cpp
+++ b/indra/llimage/llimage.cpp
@@ -147,7 +147,7 @@ U8* LLImageBase::allocateData(S32 size)
size = mWidth * mHeight * mComponents;
if (size <= 0)
{
- llerrs << llformat("LLImageBase::allocateData called with bad dimensions: %dx%dx%d",mWidth,mHeight,mComponents) << llendl;
+ llerrs << llformat("LLImageBase::allocateData called with bad dimensions: %dx%dx%d",mWidth,mHeight,(S32)mComponents) << llendl;
}
}
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 13db913f60..fbd21d5fe6 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -3901,7 +3901,14 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
image_buffer_x = llfloor(snapshot_width*scale_factor) ;
image_buffer_y = llfloor(snapshot_height *scale_factor) ;
}
- raw->resize(image_buffer_x, image_buffer_y, 3);
+ if(image_buffer_x > 0 && image_buffer_y > 0)
+ {
+ raw->resize(image_buffer_x, image_buffer_y, 3);
+ }
+ else
+ {
+ return FALSE ;
+ }
if(raw->isBufferInvalid())
{
return FALSE ;