[Java]浮動小数点の脆弱性

Javaの最新バージョン Java6update24が出ましたが、重大な脆弱性があったとのことなので、ちょっと試してみました。

参考:http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/

double型で特定の条件を満たすとJavaがハングするというもの。

↓のコードはjdk1.6.0_23以前の32bit版Javaで実行するとハングする。

[java] class runhang {
public static void main(String[] args) {
System.out.println("Test:"); double d = Double.parseDouble("2.2250738585072012e-308"); System.out.println("Value: " + d); } } [/java]

↓こちらはjdk1.6.0_23以前のJavaだとコンパイル時にハング

[java] class compilehang {
public static void main(String[] args) {
double d = 2.2250738585072012e-308; System.out.println("Value: " + d); } } [/java]

jdk1.6.0_24にすれば無問題です。

商用サーバのjdkバージョンアップも早めにやりましょう。。