Skip site navigation (1) Skip section navigation (2)

BUG #6234: Memory leak from PQexec

From: "Vikas Mehta" <mehta(at)roguewave(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6234: Memory leak from PQexec
Date: 2011-09-28 22:22:12
Message-ID: 201109282222.p8SMMCsH033290@wwwmaster.postgresql.org (view raw or flat)
Thread:
Lists: pgsql-bugs
The following bug has been logged online:

Bug reference:      6234
Logged by:          Vikas Mehta
Email address:      mehta(at)roguewave(dot)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;
}

Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2011-09-29 02:42:55
Subject: Re: BUG #6232: hstore operator ? no longer uses indexes
Previous:From: Merlin MoncureDate: 2011-09-28 21:25:06
Subject: Re: BUG #6232: hstore operator ? no longer uses indexes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group