BUG #6234: Memory leak from PQexec - Mailing list pgsql-bugs

From Vikas Mehta
Subject BUG #6234: Memory leak from PQexec
Date
Msg-id 201109282222.p8SMMCsH033290@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #6234: Memory leak from PQexec  (Craig Ringer <ringerc@ringerc.id.au>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      6234
Logged by:          Vikas Mehta
Email address:      mehta@roguewave.com
PostgreSQL version: 8.4.8
Operating system:   Windows
Description:        Memory leak from PQexec
Details:

Purify shows 448 bytes of memory leaks with PQexec:

[W] Summary of all memory leaks... {448 bytes, 11 blocks}
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in
ERR_load_SSL_strings [SSLEAY32.DLL]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in
PQrequestCancel [LIBPQ.DLL]
    [W] MLK: Memory leak of 128 bytes from 1 block allocated in
ENGINE_load_ubsec [LIBEAY32.DLL]
    [W] MLK: Memory leak of 64 bytes from 8 blocks allocated in
add_error_table [COMERR32.DLL]


Test case:
==========

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <libpq-fe.h>



void createTestTable(PGconn* dbc)
{
    PGresult *res;

    printf("\n\nCreating Test Table.....\n");

    res = PQexec(dbc, "create table mytable (col1 int)");
    if (PQresultStatus(res) == PGRES_NONFATAL_ERROR || PQresultStatus(res)
== PGRES_FATAL_ERROR) {
        printf("!!!!! Failed to create test table.\n");
    }
    PQclear(res);
}


void dropTestTable(PGconn* dbc)
{
    PGresult *res;

    printf("\n\nDropping Test Table.....\n");

    res = PQexec(dbc, "drop table mytable");
    if (PQresultStatus(res) == PGRES_NONFATAL_ERROR || PQresultStatus(res)
== PGRES_FATAL_ERROR) {
        printf("!!!!! Failed to drop test table.\n");
    }
    PQclear(res);
}

int main()
{
    PGconn *dbc;

    dbc = PQconnectdb("host = magma.cvo.roguewave.com user = username
password = pwd dbname = db");

    if(dbc == 0 || PQstatus(dbc) == CONNECTION_BAD) {
        printf("!!!!! Failed to establish connection.\n");
    }

    createTestTable(dbc);

    dropTestTable(dbc);

    PQfinish(dbc);

    return 0;
}

pgsql-bugs by date:

Previous
From: "Holec"
Date:
Subject: BUG #6233: pg_dump hangs with Access Violation C0000005
Next
From: Greg Stark
Date:
Subject: Re: BUG #6232: hstore operator ? no longer uses indexes