[PHP-users 29888] Re: 文字列長オーバーフロー上限のチェックは必要あるか?

Takumitsu Itoh itoh @ yggdore.com
2006年 7月 26日 (水) 15:44:33 JST


 質問者の伊藤です。

 永田さんありがとうございます。
実験誠にありがとうございます。一応intの上限でWarningが出るんですね。
Warningなので処理が続いたりしますが・・・。

もちろん清野さんのいうとおり、可変長の限度がちゃんと定義されていれば問題ない
ですし、ほとんどの場合は意識しなくてもいいとは思いますが、PHPで再利用する関
数を作成するときなど皆さんどうしているのか興味があり、質問させていただきまし
た。

ご質問に答えていただいた方、誠にありがとうございます。
ただ、実はこんな落とし穴があると思った方は教えてくださいね。



> -----Original Message-----
> From: php-users-bounces @ php.gr.jp [mailto:php-users-bounces @ php.gr.jp] On
> Behalf Of 永田
> Sent: Wednesday, July 26, 2006 12:13 PM
> To: PHP-users ML
> Subject: [PHP-users 29887] Re: 文字列長オーバーフロー上限のチェックは必要
あ
> るか?
>
> Takumitsu Itoh wrote:
> > 関数や、メソッドを作成するときには、int型の文字列長や配列数に収めるよう
> に、
> > 事前チェックをしたり、オーバーフローを起こしそうであれば、エラーにしたり
> すべ
> > きなのでしょうか?ここだけ見ると、当然のようなのですが、それをやると、
PHP
>> > 生産性が奪われそうですし、遅くなりそうですし・・・。皆様はどうされていま
>> > か?
> >
> さすがにそれはやってないですね
> 試しにstr_repeat()でどこまで代入できるかやってみたら
>
> Warning: str_repeat() [function.str-repeat]: You may not create strings
> longer than 2147483647 bytes in C:\home\php\test.php on line 4
>
> 内部でチェックはやっているようです。(2147483647 = 0x7FFFFFFF)
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内