...
Code Block | ||
---|---|---|
| ||
public static int AbsAdd(int x, int y) { if((x == Integer.MIN_VALUE || y == Integer.MIN_VALUE) || (x>0 && y>0 && (x > Integer.MAX_VALUE - y)) || (x<0 && y<0 && (x < Integer.MIN_VALUE - y))) throw new IllegalArgumentException(); return Math.abs(x) + Math.abs(y); } |
...
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
References
Wiki Markup |
---|
\[[JLS 05|AA. Java References#JLS 05]\] 14.10 The assert Statement \[[Bloch 08|AA. Java References#Bloch 08]\] Item 38: Check parameters for validity \[[ESA 05|AA. Java References#ESA 05]\] Rule 68: Explicitly check method parameters for validity, and throw an adequate exception in case they are not valid. Do not use the assert statement for this purpose \[[Daconta 03|AA. Java References#Daconta 03]\] Item 7: My Assertions Are Not Gratuitous |
...
MET04-J. Always provide feedback about the resulting value of a method 12. Methods (MET) MET06MET30-J. Methods that perform a security check must be declared private or finalFollow the general contract while overriding the equals method