aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Punter <gsp14@ic.ac.uk>2016-10-25 09:33:49 +0100
committerGeorge Punter <gsp14@ic.ac.uk>2016-10-25 09:33:49 +0100
commitfead3ef10057760c977503b3b564048cbfc76ce5 (patch)
tree2df2487b4400add5cc911d2653d2e1c845c5ef2a
parent3a31f9f79f7f21e67ddb5eeee362f8f21b5d77ef (diff)
downloadMipsCPU-fead3ef10057760c977503b3b564048cbfc76ce5.tar.gz
MipsCPU-fead3ef10057760c977503b3b564048cbfc76ce5.zip
Fixed subtle bug and changed comment about max RAM size
-rw-r--r--src/shared/mips_mem_ram.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/shared/mips_mem_ram.cpp b/src/shared/mips_mem_ram.cpp
index 3d4d6d2..81ae63f 100644
--- a/src/shared/mips_mem_ram.cpp
+++ b/src/shared/mips_mem_ram.cpp
@@ -19,7 +19,7 @@ extern "C" mips_mem_h mips_mem_create_ram(
uint32_t cbMem //!< Total number of bytes of ram
){
if(cbMem>0x20000000){
- return 0; // No more than 256MB of RAM
+ return 0; // No more than 512MB of RAM
}
uint8_t *data=(uint8_t*)malloc(cbMem);
@@ -57,7 +57,7 @@ static mips_error mips_mem_read_write(
if(0 != (address % length) ){
return mips_ExceptionInvalidAlignment;
}
- if((address+length) > mem->length){ // A subtle bug here, maybe?
+ if((address+length) > mem->length || address > (UINT32_MAX - length)){ // A subtle bug here, maybe?
return mips_ExceptionInvalidAddress;
}