diff options
author | Julien | 2011-06-04 06:46:40 +0800 |
---|---|---|
committer | Julien | 2011-06-23 15:11:36 +0800 |
commit | c52cc849123ac4a6e4a6ce1f0880cb1cd95e23cd (patch) | |
tree | 57cbaaf240bd1177f6bf36257b55882508b1e88f | |
parent | 2f200ac49322ff8ccd13c5e8b7a22abbf6ff2610 (diff) | |
download | scummvm-rg350-c52cc849123ac4a6e4a6ce1f0880cb1cd95e23cd.tar.gz scummvm-rg350-c52cc849123ac4a6e4a6ce1f0880cb1cd95e23cd.tar.bz2 scummvm-rg350-c52cc849123ac4a6e4a6ce1f0880cb1cd95e23cd.zip |
AUDIO/BACKENDS/GRAPHICS: Add error checks after allocating memory with malloc
-rw-r--r-- | audio/rate.cpp | 3 | ||||
-rw-r--r-- | audio/softsynth/opl/mame.cpp | 2 | ||||
-rw-r--r-- | backends/vkeybd/virtual-keyboard-parser.cpp | 6 | ||||
-rw-r--r-- | graphics/scaler.cpp | 4 |
4 files changed, 15 insertions, 0 deletions
diff --git a/audio/rate.cpp b/audio/rate.cpp index 83abd6150b..0fc23a8a54 100644 --- a/audio/rate.cpp +++ b/audio/rate.cpp @@ -298,6 +298,9 @@ public: _bufferSize = osamp; } + if (!_buffer) + error("[CopyRateConverter::flow] Cannot allocate memory for temp buffer"); + // Read up to 'osamp' samples into our temporary buffer len = input.readBuffer(_buffer, osamp); diff --git a/audio/softsynth/opl/mame.cpp b/audio/softsynth/opl/mame.cpp index 74699ba4c6..15e869ba33 100644 --- a/audio/softsynth/opl/mame.cpp +++ b/audio/softsynth/opl/mame.cpp @@ -725,6 +725,8 @@ static int OPLOpenTable(void) { ENV_CURVE = (int *)malloc(sizeof(int) * (2*EG_ENT+1)); + if (!ENV_CURVE) + error("[OPLOpenTable] Cannot allocate memory"); /* envelope counter -> envelope output table */ for (i=0; i < EG_ENT; i++) { diff --git a/backends/vkeybd/virtual-keyboard-parser.cpp b/backends/vkeybd/virtual-keyboard-parser.cpp index 5e4ce11fe4..58f0c468f6 100644 --- a/backends/vkeybd/virtual-keyboard-parser.cpp +++ b/backends/vkeybd/virtual-keyboard-parser.cpp @@ -205,6 +205,9 @@ bool VirtualKeyboardParser::parserCallback_event(ParserNode *node) { evt->type = VirtualKeyboard::kVKEventModifier; byte *flags = (byte*) malloc(sizeof(byte)); + if (!flags) + error("[VirtualKeyboardParser::parserCallback_event] Cannot allocate memory"); + *(flags) = parseFlags(node->values["modifiers"]); evt->data = flags; @@ -217,6 +220,9 @@ bool VirtualKeyboardParser::parserCallback_event(ParserNode *node) { evt->type = VirtualKeyboard::kVKEventSwitchMode; String& mode = node->values["mode"]; char *str = (char*) malloc(sizeof(char) * mode.size() + 1); + if (!str) + error("[VirtualKeyboardParser::parserCallback_event] Cannot allocate memory"); + memcpy(str, mode.c_str(), sizeof(char) * mode.size()); str[mode.size()] = 0; evt->data = str; diff --git a/graphics/scaler.cpp b/graphics/scaler.cpp index a35fb9046e..9ade0e6c57 100644 --- a/graphics/scaler.cpp +++ b/graphics/scaler.cpp @@ -24,6 +24,7 @@ #include "graphics/scaler/scalebit.h" #include "common/util.h" #include "common/system.h" +#include "common/textconsole.h" int gBitFormat = 565; @@ -90,6 +91,9 @@ void InitLUT(Graphics::PixelFormat format) { if (RGBtoYUV == 0) RGBtoYUV = (uint32 *)malloc(65536 * sizeof(uint32)); + if (!RGBtoYUV) + error("[InitLUT] Cannot allocate memory for YUV/LUT buffers"); + for (int color = 0; color < 65536; ++color) { format.colorToRGB(color, r, g, b); Y = (r + g + b) >> 2; |