aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/shared/Database/PreparedStatement.cpp2
-rw-r--r--src/server/shared/Database/QueryResult.cpp5
-rwxr-xr-xsrc/server/shared/Database/QueryResult.h6
3 files changed, 7 insertions, 6 deletions
diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp
index 0bc23648ac2..5f991f3a08a 100644
--- a/src/server/shared/Database/PreparedStatement.cpp
+++ b/src/server/shared/Database/PreparedStatement.cpp
@@ -289,6 +289,7 @@ void MySQLPreparedStatement::setString(const uint8 index, const char* value)
MYSQL_BIND* param = &m_bind[index];
size_t len = strlen(value) + 1;
param->buffer_type = MYSQL_TYPE_VAR_STRING;
+ delete [] static_cast<char *>(param->buffer);
param->buffer = new char[len];
param->buffer_length = len;
param->is_null_value = 0;
@@ -300,6 +301,7 @@ void MySQLPreparedStatement::setString(const uint8 index, const char* value)
void MySQLPreparedStatement::setValue(MYSQL_BIND* param, enum_field_types type, const void* value, uint32 len, bool isUnsigned)
{
param->buffer_type = type;
+ delete [] static_cast<char *>(param->buffer);
param->buffer = new char[len];
param->buffer_length = 0;
param->is_null_value = 0;
diff --git a/src/server/shared/Database/QueryResult.cpp b/src/server/shared/Database/QueryResult.cpp
index f2350df9e6d..61f41e75587 100644
--- a/src/server/shared/Database/QueryResult.cpp
+++ b/src/server/shared/Database/QueryResult.cpp
@@ -176,8 +176,13 @@ void ResultBind::FreeBindBuffer()
void ResultBind::CleanUp()
{
+ if (m_res)
+ mysql_free_result(m_res);
+
FreeBindBuffer();
mysql_stmt_free_result(m_stmt);
+
+ delete[] m_rBind;
}
uint8 PreparedResultSet::GetUInt8(uint32 index)
diff --git a/src/server/shared/Database/QueryResult.h b/src/server/shared/Database/QueryResult.h
index 096c562b33c..5e7ff01f819 100755
--- a/src/server/shared/Database/QueryResult.h
+++ b/src/server/shared/Database/QueryResult.h
@@ -105,12 +105,6 @@ class ResultBind
~ResultBind()
{
- if (m_res)
- mysql_free_result(m_res); // metadata
-
- if (!m_fieldCount)
- return;
-
CleanUp(); // Clean up buffer
}