Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > There is indeed a bug in pg_ctl here. We are reporting an error which
> > getopt_long already reported; and furthermore, optarg is not set by that
> > function in case of error. This is the fix:
>
> Good catch, but I'd suggest not just removing the write_stderr but
> adding a comment in its place:
>
> /* getopt_long already issued a suitable error message */
>
> Please commit fix in all relevant branches.
I'm working on it.
7.3 does not have our getopt_long, so the first branch to check is 7.4.
In my system, on 7.4, contrib/pg_dumplo is linked against the system's
getopt_long, not against our version. So the current code is OK -- but
if on some platform there is no getopt_long, I suspect our version would
be picked, which causes a problem. What should we do about it? One
thought is leave it alone -- it's an old branch and no one has ever
noticed this problem before. On the other hand, this may possibly be a
security issue.
On 7.4, pg_ctl was still a shell script, so the exact problem at hand
does not exist.
On 8.0 there is no pg_dumplo, and pg_ctl is the only program which shows
this problem.
I'm still investigating other branches.
--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"No hay ausente sin culpa ni presente sin disculpa" (Prov. francés)