How to properly fix memory leak - Mailing list pgsql-general

From Igor Korot
Subject How to properly fix memory leak
Date
Msg-id CA+FnnTyR9AoJx-3zuvgudeYmUTiNcfpAucUh0ZTcs=Ajy49qVA@mail.gmail.com
Whole thread Raw
Responses Re: How to properly fix memory leak
Re: How to properly fix memory leak
List 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



pgsql-general by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: shared buffers
Next
From: "David G. Johnston"
Date:
Subject: Re: How to properly fix memory leak