summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-12-06 20:22:21 +0000
committerrubidium <rubidium@openttd.org>2009-12-06 20:22:21 +0000
commit73df2c7a252eb8c523222928de3d5ed98d78519b (patch)
tree78206cbbe81fa95054d28245d91ae37f0875ba36
parentc5a771b59d8edaf577fbc093b0fbe98421ed8804 (diff)
downloadopenttd-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.cpp7
-rw-r--r--src/ai/ai_info.hpp1
-rw-r--r--src/script/script_info.hpp1
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();