Search Postgresql Archives

Re: Libpq memory leak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 24, 2010 at 06:11:31PM +0400, Dmitriy Igrishin wrote:
> Hey Vladimir,
> 
> 
> 
> 2010/9/24 Polyakov Vladimir <vvpolyakov@xxxxxxxxx>
> 
> > Program written in C using Libpq, which receives large files (BYTEA)
> > has a memory leak.
> > I need to free ALL of the used memory after each sql query.
> >
> > after each call PQclear() I drop the buffer:
> >    conn->inBuffer = realloc(conn->inBuffer, 8192);
> >    conn->inBufSize = 8192;


This is a known unsafe use of the realloc() function. If if fails to
allocate memory, you just lost the conn->inBuffer, thus leaking memory
in your own code. Fix this first, and then see if you still have the
issue with memory leaks, because it's possible you're just leaking it
with a bad realloc() idiom.

> >
> > It works, but ..
> > I noticed that in some cases PQclear() does not clear the memory.
> > This happens only when the program receives certain files...
> >
> > Why do you need realloc() after PQclear()?
> 
> -- 
> Regards,
> Dmitriy

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux