Обсуждение: bug: erroronous ret-value for system() call in 2.6-kernel

Поиск
Список
Период
Сортировка

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

От
"Niklas Andersson"
Дата:
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

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

От
Tom Lane
Дата:
"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