diff options
author | Machiavelli <none@none> | 2010-09-13 17:07:27 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-09-13 17:07:27 +0200 |
commit | 88f378e7ae7fad4a2f45e290926ba54d7a8aa4a1 (patch) | |
tree | 0bc2b295538b22e5e000c2c4f1fd98d31a7cadc9 /src/server/shared/Database/PreparedStatement.cpp | |
parent | 6d0a031a77f53eade2cf62138a601054b6a9cdc9 (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.cpp | 2 |
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; |