From 88f378e7ae7fad4a2f45e290926ba54d7a8aa4a1 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Mon, 13 Sep 2010 17:07:27 +0200 Subject: Core/DBLayer: Fix a memory leak in prepared statement parameter/result binds. Original author: raczman --HG-- branch : trunk --- src/server/shared/Database/PreparedStatement.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/server/shared/Database/PreparedStatement.cpp') 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(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(param->buffer); param->buffer = new char[len]; param->buffer_length = 0; param->is_null_value = 0; -- cgit v1.2.3