diff options
author | rubidium <rubidium@openttd.org> | 2009-12-06 20:22:21 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-12-06 20:22:21 +0000 |
commit | 73df2c7a252eb8c523222928de3d5ed98d78519b (patch) | |
tree | 78206cbbe81fa95054d28245d91ae37f0875ba36 | |
parent | c5a771b59d8edaf577fbc093b0fbe98421ed8804 (diff) | |
download | openttd-73df2c7a252eb8c523222928de3d5ed98d78519b.tar.xz |
(svn r18418) -Fix [FS#3298]: under some circumstances a pointer could be left untouched and then freed. Make sure this doesn't happen by ensuring it starts out as NULL instead of 'garbage'.
-rw-r--r-- | src/ai/ai_info.cpp | 7 | ||||
-rw-r--r-- | src/ai/ai_info.hpp | 1 | ||||
-rw-r--r-- | src/script/script_info.hpp | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index d6337d511..be16a4966 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -131,6 +131,13 @@ bool AIInfo::GetSettings() return this->engine->CallMethod(*this->SQ_instance, "GetSettings", NULL, -1); } +AIInfo::AIInfo() : + min_loadable_version(0), + use_as_random(false), + api_version(NULL) +{ +} + AIInfo::~AIInfo() { /* Free all allocated strings */ diff --git a/src/ai/ai_info.hpp b/src/ai/ai_info.hpp index 6716cf95e..605664fbb 100644 --- a/src/ai/ai_info.hpp +++ b/src/ai/ai_info.hpp @@ -58,6 +58,7 @@ class AIInfo : public AIFileInfo { public: static const char *GetClassName() { return "AIInfo"; } + AIInfo(); ~AIInfo(); /** diff --git a/src/script/script_info.hpp b/src/script/script_info.hpp index 931a4caf8..a812df3e5 100644 --- a/src/script/script_info.hpp +++ b/src/script/script_info.hpp @@ -25,6 +25,7 @@ public: description(NULL), date(NULL), instance_name(NULL), + version(0), url(NULL) {} ~ScriptFileInfo(); |