bug: erroronous ret-value for system() call in 2.6-kernel

Started by Niklas Anderssonabout 21 years ago2 messagesbugs
Jump to latest
#1Niklas Andersson
niklas.andersson@cport.se

Hi!

Had a curious problem with postgresql 7.0.3. Could create a DB if I run
kernel 2.4 but not in 2.6. Had a look in
/src/backend/commands/dbcommands.c and finaly found out that you use an
errorounous ret value from the system()-call. You checked for: if
(system(buf) != 0)

.. I changed those lines to if (system(buf) != -1 ) and it worked. (Thanks
to "man 3 system"

regards
Niklas Andersson

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Niklas Andersson (#1)
Re: bug: erroronous ret-value for system() call in 2.6-kernel

"Niklas Andersson" <niklas.andersson@cport.se> writes:

Had a curious problem with postgresql 7.0.3.

7.0.3? You do realize that that's prehistoric?

Could create a DB if I run
kernel 2.4 but not in 2.6. Had a look in
/src/backend/commands/dbcommands.c and finaly found out that you use an
errorounous ret value from the system()-call. You checked for: if
(system(buf) != 0)

.. I changed those lines to if (system(buf) != -1 ) and it worked. (Thanks
to "man 3 system"

I don't believe this change is correct; what you did was to disable
detection of failures of the child process, ie, cp returning a nonzero
exit status.

regards, tom lane