You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Stepan Mishura (JIRA)" <ji...@apache.org> on 2007/01/25 11:24:49 UTC
[jira] Assigned: (HARMONY-1120) [class][security]
MessageDigest.update(byte[], int, int) incompatible with RI exceptions
[ https://issues.apache.org/jira/browse/HARMONY-1120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stepan Mishura reassigned HARMONY-1120:
---------------------------------------
Assignee: Stepan Mishura (was: Mikhail Loenko)
> [class][security] MessageDigest.update(byte[], int, int) incompatible with RI exceptions
> ----------------------------------------------------------------------------------------
>
> Key: HARMONY-1120
> URL: https://issues.apache.org/jira/browse/HARMONY-1120
> Project: Harmony
> Issue Type: Bug
> Components: Classlib
> Reporter: Denis Kishenko
> Assigned To: Stepan Mishura
> Attachments: 1120-MessageDigest.patch, 1120-MessageDigestTest.patch
>
>
> Seems like RI doesn't check if offset and len are negative but Harmony does, so we have difference in behavior.
> ------------------------------------ Test -------------------------------------------
> import java.security.MessageDigest;
> public class bug9429 {
> public static void main (String[] args) {
> // len <0; RI does not throw exception
> try {
> System.err.println("1");
> MessageDigest.getInstance("SHA").update(new byte[] {2,2}, 0, -100);
> } catch (Exception e) {
> e.printStackTrace();
> }
> // RI and Harmony throws IllegalArgumentException
> try {
> System.err.println("2");
> MessageDigest.getInstance("SHA").update(new byte[] {2,2}, 0, 5);
> } catch (Exception e) {
> e.printStackTrace();
> }
> // RI throws ArrayIndexOutOfBoundsException; Harmony throws IllegalArgumentException
> // off <0
> try {
> System.err.println("3");
> MessageDigest.getInstance("SHA").update(new byte[] {2,2}, -100, 57);
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> ------------------------ Output ----------------------------------------
> RI
> 1
> 2
> java.lang.IllegalArgumentException: Input buffer too short
> at java.security.MessageDigest.update(MessageDigest.java:267)
> at bug9429.main(bug9429.java:16)
> 3
> java.lang.ArrayIndexOutOfBoundsException
> at java.lang.System.arraycopy(Ljava.lang.Object;ILjava.lang.Object;II)V(Unknown Source)
> at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:120)
> at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:523)
> at java.security.MessageDigest.update(MessageDigest.java:269)
> at bug9429.main(bug9429.java:24)
> Harmony
> 1
> java.lang.IllegalArgumentException: Incorrect offset/len parameters
> at java.security.MessageDigest.update(MessageDigest.java:169)
> at bug9429.main(bug9429.java:9)
> 2
> java.lang.IllegalArgumentException: Incorrect offset/len parameters
> at java.security.MessageDigest.update(MessageDigest.java:169)
> at bug9429.main(bug9429.java:16)
> 3
> java.lang.IllegalArgumentException: Incorrect offset/len parameters
> at java.security.MessageDigest.update(MessageDigest.java:169)
> at bug9429.main(bug9429.java:24)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.