Re: pg_upgrade segfault (was: pg_migrator segfault) - Mailing list pgsql-general

From Tom Lane
Subject Re: pg_upgrade segfault (was: pg_migrator segfault)
Date
Msg-id 3659.1288725817@sss.pgh.pa.us
Whole thread Raw
In response to Re: pg_upgrade segfault (was: pg_migrator segfault)  (hernan gonzalez <hgonzalez@gmail.com>)
List pgsql-general
hernan gonzalez <hgonzalez@gmail.com> writes:
> In pg_upgrade/controldata.c  , putenv2 function :
>         char       *envstr = (char *) pg_malloc(ctx, strlen(var)
> +  strlen(val) + 1);
>         sprintf(envstr, "%s=%s", var, val);

> Shouldn't it be  "+ 2 " instead of "+ 1" ?

Yup, it sure should.  So probably the reason you're the first one to see
it is that the problem would depend on the exact lengths of the strings
being used here :-(

> But it's not enough to get valgrind happy (It still reports 4 "definitely
> lost" blocks, all from that putenv2 function).

That's expected; those blocks aren't supposed to get freed.

            regards, tom lane

pgsql-general by date:

Previous
From: hernan gonzalez
Date:
Subject: Re: pg_upgrade segfault (was: pg_migrator segfault)
Next
From: Jonathan Tripathy
Date:
Subject: Return key from query