On Wed, Oct 10, 2012 at 7:54 PM, Bruce Momjian <br...@momjian.us> wrote:
> On Mon, Oct  8, 2012 at 09:03:37PM -0400, Bruce Momjian wrote:
>> On Mon, Oct  8, 2012 at 04:33:29PM -0400, Tom Lane wrote:
>> > Bruce Momjian <br...@momjian.us> writes:
>> > > A while ago I noticed that in some places we strdup/pg_strdup() optarg
>> > > strings from getopt(), and in some places we don't.
>> >
>> > > If we needed the strdup(), the missing cases should generate errors.  If
>> > > we don't need them, the strdup() is unnecessary, and research confirms
>> > > they are unnecessary.  Should we remove the extra strdup/pg_strdup()
>> > > calls, for consistency.
>> >
>> > What research?  Given the number of different ways argv[] is handled
>> > on different platforms (cf ps_status.c), I am very unwilling to trust
>> > that it's safe to hang onto an argv string for long without strdup'ing
>> > it.
>> >
>> > > I think we might have had old platforms that required it, but none are
>> > > still supported today.
>> >
>> > And what's your grounds for stating that?  All the alternatives in
>> > ps_status.c are still live code AFAICS.
>> >
>> > My feeling is it's more likely to be a good idea to be adding strdup's
>> > than removing them.
>>
>> Well, what we have now is either wrong or over-kill --- I don't know for
>> sure which.
>
> OK, I have developed the attached patch to add strdup/pg_strdup() calls
> to all saving of getopt optarg arguments.
>
> Also, do we want to centralize the definition of pg_strdup() in /port,
> or leave each module to define it on its own?   I see pg_strdup() defined
> in these modules:
>
>         /pgtop/contrib/oid2name
>         /pgtop/contrib/pgbench
>         /pgtop/contrib/pg_upgrade
>         /pgtop/src/bin/initdb
>         /pgtop/src/bin/pg_basebackup
>         /pgtop/src/bin/pg_ctl
>         /pgtop/src/bin/pg_dump
>         /pgtop/src/bin/psql
>         /pgtop/src/bin/scripts
>

+1 for a centralized definition.

> --
>   Bruce Momjian  <br...@momjian.us>        http://momjian.us
>   EnterpriseDB                             http://enterprisedb.com
>
>   + It's impossible for everything to be true. +
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>


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

Reply via email to