Heikki Linnakangas <[email protected]> writes:
> Fix race condition in pg_ctl reading postmaster.pid.
> If postmaster changed postmaster.pid while pg_ctl was reading it, pg_ctl
> could overrun the buffer it allocated for the file. Fix by reading the
> whole file to memory with one read() call.

Maybe I'm just not awake enough, but that code doesn't look to me like
it does the right thing with a non-newline-terminated file.  Doesn't it
drop the last character of the last line?

Given the way that pg_ctl uses the file, I think that the old logic of
"pretend the file ends with a newline" is wrong anyway.  If we do manage
to see an intermediate state of the file, it would be better to not
return the last line at all than to return a truncated (a/k/a wrong)
value for that line.  So I'd vote to rejigger the logic to ignore any
data after the last newline.

                        regards, tom lane


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to