整数溢出klocwork分析
Integer Overflow klocwork analysis
我有以下代码行,当我对我的项目进行 运行 klocwork 分析时,我得到以下错误
SV.INT_OVF:来自 'br.readLine()' 的污染数据 'Long.parseLong(...)' 用于算术运算,可能导致整数溢出或意外结果
我的代码
while (line = br.readLine() != null) {
long timestamp = timescale * Long.parseLong(line.substring(1, line.length()));
}
如何重构此代码以避免可能的溢出
谢谢
您可以使用 BigInteger
来避免溢出。
你是否应该是另一个问题。
我会看看这些值的合理范围是多少,并首先验证您的输入。很可能最广泛的正常值不会产生溢出(或者如果产生溢出,您必须使用 BigInteger)
我有以下代码行,当我对我的项目进行 运行 klocwork 分析时,我得到以下错误
SV.INT_OVF:来自 'br.readLine()' 的污染数据 'Long.parseLong(...)' 用于算术运算,可能导致整数溢出或意外结果
我的代码
while (line = br.readLine() != null) {
long timestamp = timescale * Long.parseLong(line.substring(1, line.length()));
}
如何重构此代码以避免可能的溢出
谢谢
您可以使用 BigInteger
来避免溢出。
你是否应该是另一个问题。
我会看看这些值的合理范围是多少,并首先验证您的输入。很可能最广泛的正常值不会产生溢出(或者如果产生溢出,您必须使用 BigInteger)