← |
2024年11月 |
→ |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
26 |
27 |
28 |
29 |
30 |
|
2.2250738585072011e-308でPHPが暴走するらしい
|
先日書いたこのPHPの脆弱性の問題・・・ではなく、 それとは別に、PHPの別の脆弱性が年始に報告されています。
→発見者のBlog →CVE-2010-4645
簡単に言うと↓みたいな単純なコードでPHPが無限ループに陥り、 場合によってはサーバーダウンをしてしまうというもの。
<?php $d = 2.2250738585072011e-308; ?>
既に、これが修正されたPHPがリリースされているので、 使用している方は、バージョンの更新をお勧めします。
→PHP公式
なお、対象になるのはPHP5.2系/5.3系でかつ、 x86系の32bitCPUの場合らしいです。 もっと言うと、公式に安全にテストが出来るテストコードが掲載されています: →PHP 5.3.5 and 5.2.17 Released! ここの記事からリンクでたどれます。
すぐに、PHPバージョンアップが出来ない場合には、 Linuxならば、以下のようにコンパイラオプションを変更して 手元のPHPをコンパイルし直せばいいようです。
The simple fix: add a "-ffloat-store" flag to your CFLAGS. →ソース元:http://news.ycombinator.com/item?id=2066352
というのも、原因がIntelの浮動小数点ユニットは80bitでの演算をするのですが、 一般的な倍精度浮動小数点は64bit。
これらの、制度の違いを相互変換処理する過程での問題らしく、 このオプションを付けると、CPUの浮動小数点演算を使わなくなるため、問題が解決するそうな。
|
00:40, Thursday, Jan 13, 2011 ¦ 固定リンク
¦ 携帯
■コメント
■コメントを書く
※コメントの受け付けは終了しました
|
|