JAVA.COMPARE.NAN
NaN と比較しようとしない
脆弱性とリスク
NaN からの戻り値を検証しても、期待どおりの結果が得られないことがあります。
軽減と防止
isNan() や Double.isNaN などの別の方法を検証に使用してください。
脆弱コード例
コピー
                                                        
                                                    
                                                package com.klocwork;
public class JAVA_COMPARE_NAN_POSITIVE {
    public static void test(String args[]) {
        double d = 1;
        
        if (d == Double.NaN) {
            return;
        }
    }
}
                                                        修正コード例
コピー
                                                    
                                                
                                            package com.klocwork;
public class JAVA_COMPARE_NAN_NEGATIVE {
    public static void test(String args[]) {
        double d = 1;
        if (Double.isNaN(d)) {
            return;
        }
    }
}