[PHP-users 17439]Re: execが動作しない。
Osamu Shigematsu
m5issige @ mr.hitachi-medical.co.jp
2003年 8月 21日 (木) 18:43:37 JST
重松です。こんにちは。
> ということであったのですが、先ほど他の方より私信でメールがあり safe_mode 時の
> execの動作は下記のようです
>
> > 1. exec の第一引数からディレクトリをすべて取りのぞく。
> > 2. 1. の結果とsafe_mode_exec_dirで設定したディレクトリを引っ付ける。
すっかり見落としていましたが、そのままの名前の関数、
php_make_safe_mode_command()
が 1 の処理の正体のようです。
なんともまあタコな仕様ですね。。。>PHP
だったら、第一引数、つまり、コマンドにディレクトリ用の区切り文字を
見つけたら、エラーにすれば、こういう間抜けな事態にならないと思うんですが。
86,87c86,89
< strcat(*safecmd, sep);
< overflow_limit -= strlen(sep);
---
> php_error_docref(NULL TSRMLS_CC, E_WARNING, "No directory separator allowed in path");
> efree(arg0);
> efree(*safecmd);
> return FAILURE;
とでもすれば、躓かずに済みそうだと、思ったり、思わなかったり...。
# path でディレクトリ区切りが使えないって英語は変な気がしたりしますが。
--
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>
PHP-users メーリングリストの案内