How to properly fix memory leak

From: Igor Korot <ikorot01(at)gmail(dot)com>
To: "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: How to properly fix memory leak
Date: 2025-04-26 03:24:49
Message-ID: CA+FnnTyR9AoJx-3zuvgudeYmUTiNcfpAucUh0ZTcs=Ajy49qVA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi, ALL,

[code]
auto res = PQexec( m_db, m_pimpl->m_myconv.to_bytes( query.c_str()
).c_str() ); /* ask for binary results */
if( PQresultStatus( res ) != PGRES_TUPLES_OK )
{
auto err = m_pimpl->m_myconv.from_bytes( PQerrorMessage( m_db ) );
errorMsg.push_back( L"Update validation table: " + err );
result = 1;
}
else
{
for( int i = 0; i < PQntuples( res ); i++ )
{
auto temp1 = m_pimpl->m_myconv.from_bytes( PQgetvalue(
res, i, 1 ) );
m_tablespaces.push_back( temp1 );
} // this line gives a leak according to VLD
}
PQclear( res );
return result;
[/code]

I ran this code on MSVC 2017 with VLD and according to the VLD report I have
a memory leak on the line indicated.

Should I call PQclear() on every iteration of the loop?

And I hope I handle the error cae properly...

Thank you

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David G. Johnston 2025-04-26 03:48:00 Re: How to properly fix memory leak
Previous Message Laurenz Albe 2025-04-25 22:46:15 Re: shared buffers