From 9ad7c54510d6a6be73db1b1796348e5e1e2a1318 Mon Sep 17 00:00:00 2001 From: Jordan Cristiano Date: Thu, 18 Jun 2015 20:19:35 -0400 Subject: [PATCH] Added guards around DemHandlers functions --- demboyz/demmessages/demhandlers.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/demboyz/demmessages/demhandlers.cpp b/demboyz/demmessages/demhandlers.cpp index c51f746..3b0a6a7 100644 --- a/demboyz/demmessages/demhandlers.cpp +++ b/demboyz/demmessages/demhandlers.cpp @@ -23,23 +23,39 @@ typedef bool (*DemMsgJsonWriteFn)(JsonWrite& jsonbuf, void* data); bool DemHandlers::DemMsg_FileRead(uint32_t type, FileRead& demofile, void* data) { static const DemMsgFileReadFn demHandlers[] = DECLARE_DEM_HANDLER_ARRAY(FileRead); + if (type >= (sizeof(demHandlers) / sizeof(DemMsgFileReadFn))) + { + return false; + } return demHandlers[type](demofile, data); } bool DemHandlers::DemMsg_FileWrite(uint32_t type, FileWrite& demofile, void* data) { static const DemMsgFileWriteFn demHandlers[] = DECLARE_DEM_HANDLER_ARRAY(FileWrite); + if (type >= (sizeof(demHandlers) / sizeof(DemMsgFileWriteFn))) + { + return false; + } return demHandlers[type](demofile, data); } bool DemHandlers::DemMsg_JsonRead(uint32_t type, JsonRead& jsonbuf, void* data) { static const DemMsgJsonReadFn demHandlers[] = DECLARE_DEM_HANDLER_ARRAY(JsonRead); + if (type >= (sizeof(demHandlers) / sizeof(DemMsgJsonReadFn))) + { + return false; + } return demHandlers[type](jsonbuf, data); } bool DemHandlers::DemMsg_JsonWrite(uint32_t type, JsonWrite& jsonbuf, void* data) { static const DemMsgJsonWriteFn demHandlers[] = DECLARE_DEM_HANDLER_ARRAY(JsonWrite); + if (type >= (sizeof(demHandlers) / sizeof(DemMsgJsonWriteFn))) + { + return false; + } return demHandlers[type](jsonbuf, data); }