aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-05-30 23:41:08 +0200
committerShauren <shauren.trinity@gmail.com>2016-05-30 23:41:08 +0200
commit634ec0061f9358f03aba91dc5411c2d38de94f5c (patch)
tree66b77b105a4f7927f590f9a67003a91ea46dcc4e /src/server/shared
parentb82332487afd7233850e7eed996615b3fdd7248c (diff)
Core/DataStores: Updated db2 to 7.0.3.21796
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/DataStores/DB2Meta.cpp4
-rw-r--r--src/server/shared/DataStores/DB2Meta.h3
-rw-r--r--src/server/shared/DataStores/DB2SparseStorageLoader.cpp6
-rw-r--r--src/server/shared/DataStores/DB2StorageLoader.cpp6
4 files changed, 16 insertions, 3 deletions
diff --git a/src/server/shared/DataStores/DB2Meta.cpp b/src/server/shared/DataStores/DB2Meta.cpp
index 66c18961551..bf119b52150 100644
--- a/src/server/shared/DataStores/DB2Meta.cpp
+++ b/src/server/shared/DataStores/DB2Meta.cpp
@@ -17,8 +17,8 @@
#include "DB2Meta.h"
-DB2Meta::DB2Meta(int32 indexField, uint32 fieldCount, char const* types, uint8 const* arraySizes)
- : IndexField(indexField), FieldCount(fieldCount), Types(types), ArraySizes(arraySizes)
+DB2Meta::DB2Meta(int32 indexField, uint32 fieldCount, uint32 layoutHash, char const* types, uint8 const* arraySizes)
+ : IndexField(indexField), FieldCount(fieldCount), LayoutHash(layoutHash), Types(types), ArraySizes(arraySizes)
{
}
diff --git a/src/server/shared/DataStores/DB2Meta.h b/src/server/shared/DataStores/DB2Meta.h
index adfdfea37fb..2c165b52d86 100644
--- a/src/server/shared/DataStores/DB2Meta.h
+++ b/src/server/shared/DataStores/DB2Meta.h
@@ -22,7 +22,7 @@
struct DB2Meta
{
- DB2Meta(int32 indexField, uint32 fieldCount, char const* types, uint8 const* arraySizes);
+ DB2Meta(int32 indexField, uint32 fieldCount, uint32 layoutHash, char const* types, uint8 const* arraySizes);
bool HasIndexFieldInData() const;
@@ -39,6 +39,7 @@ struct DB2Meta
int32 IndexField;
uint32 FieldCount;
+ uint32 LayoutHash;
char const* Types;
uint8 const* ArraySizes;
};
diff --git a/src/server/shared/DataStores/DB2SparseStorageLoader.cpp b/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
index 721ce6d8813..c6e1c495b00 100644
--- a/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
+++ b/src/server/shared/DataStores/DB2SparseStorageLoader.cpp
@@ -119,6 +119,12 @@ bool DB2SparseFileLoader::Load(const char *filename, DB2Meta const* meta)
EndianConvert(layoutHash);
+ if (layoutHash != meta->LayoutHash)
+ {
+ fclose(f);
+ return false;
+ }
+
if (fread(&minIndex, 4, 1, f) != 1) // MinIndex WDB2
{
fclose(f);
diff --git a/src/server/shared/DataStores/DB2StorageLoader.cpp b/src/server/shared/DataStores/DB2StorageLoader.cpp
index 0f45b75c8d6..fd3e0a257cd 100644
--- a/src/server/shared/DataStores/DB2StorageLoader.cpp
+++ b/src/server/shared/DataStores/DB2StorageLoader.cpp
@@ -119,6 +119,12 @@ bool DB2FileLoader::Load(char const* filename, DB2Meta const* meta)
return false;
}
+ if (layoutHash != meta->LayoutHash)
+ {
+ fclose(f);
+ return false;
+ }
+
EndianConvert(layoutHash);
if (fread(&minIndex, 4, 1, f) != 1) // MinIndex WDB2