Re: [HACKERS] New pg_ctl has retrogressed in error messages
От | Andrew Dunstan |
---|---|
Тема | Re: [HACKERS] New pg_ctl has retrogressed in error messages |
Дата | |
Msg-id | 40BBD6BB.2060306@dunslane.net обсуждение исходный текст |
Ответ на | Re: [HACKERS] New pg_ctl has retrogressed in error messages (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] New pg_ctl has retrogressed in error messages
|
Список | pgsql-patches |
Tom Lane wrote: >Bruce Momjian <pgman@candle.pha.pa.us> writes: > > >>I also changed all the pid variables to use pid_t. >> >> > >Good, but ... > > > >>! fscanf(pidf, "%u", &pid); >> >> > >this code will fail rather horribly if sizeof(pid_t) != sizeof(int). >Even more to the point, I believe a standalone backend will put >the negative of its PID into the file, and the revised code will fail >to parse that at all. > >I think the safest code would be like > > long tmp; > > fscanf(pidf, "%ld", &tmp); > if (tmp < 0) > { > tmp = -tmp; > // do anything else needed for backend case > } > pid = (pid_t) tmp; > > > > I deliberately used a signed long for these reasons in the first place. The number of places we actually need to use this value as a pid is small (3 by my count - in calls to kill() ), and it was cast there to pid_t, I think. I still don't see what's wrong with that. cheers andrew
В списке pgsql-patches по дате отправления: