Re: getopt() and strdup()
От | Bruce Momjian |
---|---|
Тема | Re: getopt() and strdup() |
Дата | |
Msg-id | 20121010235415.GE11890@momjian.us обсуждение исходный текст |
Ответ на | Re: getopt() and strdup() (Bruce Momjian <bruce@momjian.us>) |
Ответы |
Re: getopt() and strdup()
Re: getopt() and strdup() |
Список | pgsql-hackers |
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 <bruce@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 -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
Вложения
В списке pgsql-hackers по дате отправления: