[PHP-users 17440]Re: execが動作しない。
Tatsuya Ueda
tatsuya @ ps.sakura.ne.jp
2003年 8月 21日 (木) 22:49:26 JST
S-Lines Network Service の 上田 です。
「Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>」 さんの
「[PHP-users 17439] Re: 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 でディレクトリ区切りが使えないって英語は変な気がしたりしますが。
確かにそうですね。まさかそういった仕様になっているとは思いませんでした。
何はともあれ原因がわかりよかったです。
ありがとうございました。
---
TATSUYA E-Mail : tatsuya @ ps.sakura.ne.jp
W e b : http://TATSUYA.info/
PHP-users メーリングリストの案内