Re: pg_dump vs malloc

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Magnus Hagander <magnus@hagander.net>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-11-14T22:10:17Z
Lists: pgsql-hackers

Attachments

Alvaro Herrera wrote:
> Excerpts from Magnus Hagander's message of mi jun 22 11:25:43 -0400 2011:
> > On Fri, Jun 10, 2011 at 21:07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > > Magnus Hagander <magnus@hagander.net> writes:
> > >> I came across a situation today with a pretty bad crash of pg_dump,
> > >> due to not checking the return code from malloc(). When looking
> > >> through the code, it seems there are a *lot* of places in pg_dump that
> > >> doesn't check the malloc return code.
> > >
> > >> But we do have a pg_malloc() function in there - but from what I can
> > >> tell it's only used very sparsely?
> > >
> > >> Shouldn't we be using that one more or less everywhere
> > >
> > > Yup. Have at it.
> > 
> > Something along the line of this?
> 
> Huh, do you really need a new file for the four new functions?  What's
> wrong with common.c?

I developed the attached patch to handle this.  I moved the catalog code
from common.c into dumpcatalog.c, so there are just memory routines now
in common.c.  I created new memory routines in pg_dumpall.c because
there is no AH structure in pg_dumpall.c.  I then modified all the calls
to use the new routines, and removed the NULL return checks that were no
longer necessary.

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +