Thread: pg_ctl -o option dumps core when processing postmaster arguments...

pg_ctl -o option dumps core when processing postmaster arguments...

From
Sean Chittenden
Date:
The attached space adds '\0' as a whitespace character and prevents
pg_ctl from running out of bounds when processing arguments for -o.  I
don't think this ever worked, at least on Mac, but I suspect every
platform suffered from this bug.

% gdb ./bin/pg_ctl
GNU gdb 5.3-20030128 (Apple version gdb-309) (Thu Dec  4 15:41:30 GMT
2003)
This GDB was configured as "powerpc-apple-darwin".
Reading symbols for shared libraries ........ done
(gdb) set arg -w -o -F start
(gdb) run
Starting program: /usr/local/pgsql/bin/pg_ctl -w -o -F start
Reading symbols for shared libraries ++.. done
waiting for postmaster to start...
Program received signal EXC_BAD_ACCESS, Could not access memory.
test_postmaster_connection () at pg_ctl.c:363
363                             p++;
(gdb) bt
#0  test_postmaster_connection () at pg_ctl.c:363
#1  0x00003594 in do_start () at pg_ctl.c:539
#2  0x00003594 in do_start () at pg_ctl.c:539
#3  0x00004874 in main (argc=-1610604968, argv=0x0) at pg_ctl.c:1360
(gdb) p *p
$1 = 0 '\0'

-sc

--
Sean Chittenden

Attachment