summaryrefslogtreecommitdiff
path: root/indra/lscript/lscript_execute
diff options
context:
space:
mode:
Diffstat (limited to 'indra/lscript/lscript_execute')
-rw-r--r--indra/lscript/lscript_execute/lscript_execute.cpp14
-rw-r--r--indra/lscript/lscript_execute/lscript_readlso.cpp14
2 files changed, 22 insertions, 6 deletions
diff --git a/indra/lscript/lscript_execute/lscript_execute.cpp b/indra/lscript/lscript_execute/lscript_execute.cpp
index 196ca07d1d..b166e922a2 100644
--- a/indra/lscript/lscript_execute/lscript_execute.cpp
+++ b/indra/lscript/lscript_execute/lscript_execute.cpp
@@ -43,11 +43,19 @@ LLScriptExecute::LLScriptExecute(FILE *fp)
U8 sizearray[4];
S32 filesize;
S32 pos = 0;
- fread(&sizearray, 1, 4, fp);
- filesize = bytestream2integer(sizearray, pos);
+ if (fread(&sizearray, 1, 4, fp) != 4)
+ {
+ llwarns << "Short read" << llendl;
+ filesize = 0;
+ } else {
+ filesize = bytestream2integer(sizearray, pos);
+ }
mBuffer = new U8[filesize];
fseek(fp, 0, SEEK_SET);
- fread(mBuffer, 1, filesize, fp);
+ if (fread(mBuffer, 1, filesize, fp) != filesize)
+ {
+ llwarns << "Short read" << llendl;
+ }
fclose(fp);
init();
diff --git a/indra/lscript/lscript_execute/lscript_readlso.cpp b/indra/lscript/lscript_execute/lscript_readlso.cpp
index 669a9b6a06..0021a87d65 100644
--- a/indra/lscript/lscript_execute/lscript_readlso.cpp
+++ b/indra/lscript/lscript_execute/lscript_readlso.cpp
@@ -17,11 +17,19 @@ LLScriptLSOParse::LLScriptLSOParse(FILE *fp)
U8 sizearray[4];
S32 filesize;
S32 pos = 0;
- fread(&sizearray, 1, 4, fp);
- filesize = bytestream2integer(sizearray, pos);
+ if (fread(&sizearray, 1, 4, fp) != 4)
+ {
+ llwarns << "Short read" << llendl;
+ filesize = 0;
+ } else {
+ filesize = bytestream2integer(sizearray, pos);
+ }
mRawData = new U8[filesize];
fseek(fp, 0, SEEK_SET);
- fread(mRawData, 1, filesize, fp);
+ if (fread(mRawData, 1, filesize, fp) != filesize)
+ {
+ llwarns << "Short read" << llendl;
+ }
initOpCodePrinting();
}