From c2298a97202e6b038654f3a4c997b8046c5cea9f Mon Sep 17 00:00:00 2001 From: extempore Date: Sun, 19 Sep 2010 03:58:11 +0000 Subject: [PATCH] Guard against overflow in fjbg. Closes #3671, no review. git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@23033 5e8d7ff9-d8ef-0310-90f0-a4852d11357a --- lib/fjbg.jar | Bin 101812 -> 101823 bytes src/fjbg/ch/epfl/lamp/fjbg/JExtendedCode.java | 7 ++++--- test/files/pos/bug3671.scala | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 test/files/pos/bug3671.scala diff --git a/lib/fjbg.jar b/lib/fjbg.jar index d8fe94d73d0c30f0bcb652848cfbeba3b60462e6..fec627ce27fb23aaacf60cf909cd64782c2a1c39 100644 GIT binary patch delta 9353 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 aGH@B2mrXLj0u-adk^w2A=)m*vc>fO@Hj7RG delta 9215 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 diff --git a/src/fjbg/ch/epfl/lamp/fjbg/JExtendedCode.java b/src/fjbg/ch/epfl/lamp/fjbg/JExtendedCode.java index 69d043652..f0f61630e 100644 --- a/src/fjbg/ch/epfl/lamp/fjbg/JExtendedCode.java +++ b/src/fjbg/ch/epfl/lamp/fjbg/JExtendedCode.java @@ -575,12 +575,13 @@ public class JExtendedCode extends JCode { } int keyMin = keys[0], keyMax = keys[keys.length - 1]; - int keyRange = keyMax - keyMin + 1; + /** Calculate in long to guard against overflow. */ + long keyRange = (long)keyMax - keyMin + 1; if ((double)keys.length / (double)keyRange >= minDensity) { // Keys are dense enough, use a table in which holes are // filled with defaultBranch. - int[] newKeys = new int[keyRange]; - Label[] newBranches = new Label[keyRange]; + int[] newKeys = new int[(int)keyRange]; + Label[] newBranches = new Label[(int)keyRange]; int oldPos = 0; for (int i = 0; i < keyRange; ++i) { int key = keyMin + i; diff --git a/test/files/pos/bug3671.scala b/test/files/pos/bug3671.scala new file mode 100644 index 000000000..75559f84e --- /dev/null +++ b/test/files/pos/bug3671.scala @@ -0,0 +1,7 @@ +object Crash { + def crash(value: Int): Unit = + value match { + case java.lang.Integer.MAX_VALUE => println("MAX_VALUE") + case java.lang.Integer.MIN_VALUE => println("MIN_VALUE") + } +} \ No newline at end of file