Core/DBLayer: Fix a memory leak in prepared statement parameter/result binds. Original author: raczman

--HG--
branch : trunk
This commit is contained in:
Machiavelli
2010-09-13 17:07:27 +02:00
parent 6d0a031a77
commit 88f378e7ae
3 changed files with 7 additions and 6 deletions

View File

@@ -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;