aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/PreparedStatement.cpp
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-09-13 17:07:27 +0200
committerMachiavelli <none@none>2010-09-13 17:07:27 +0200
commit88f378e7ae7fad4a2f45e290926ba54d7a8aa4a1 (patch)
tree0bc2b295538b22e5e000c2c4f1fd98d31a7cadc9 /src/server/shared/Database/PreparedStatement.cpp
parent6d0a031a77f53eade2cf62138a601054b6a9cdc9 (diff)
Core/DBLayer: Fix a memory leak in prepared statement parameter/result binds. Original author: raczman
--HG-- branch : trunk
Diffstat (limited to 'src/server/shared/Database/PreparedStatement.cpp')
-rw-r--r--src/server/shared/Database/PreparedStatement.cpp2
1 files changed, 2 insertions, 0 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;