⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string_overflow.java

📁 gcc的组建
💻 JAVA
字号:
class String_overflow{  static void getChars()  {    String source = "abcdefg";    char[] dest = new char [3];    try      {	source.getChars (0, 5,	// Source			 dest, (1<<31) - 1);	Fail ("getChars", "Should not have succeeded");      }    catch (Throwable e)      {	ExpectArrayIndex ("getChars", e);      }  }    /* How do I stop a compiler warning causing a test to fail?  static void getBytes()  {    String source = "abcdefg";    byte[] dest = new byte[3];    try      {	source.getBytes (0, 5, dest, (1<<31) - 1);	Fail ("getBytes", "Should not have succeeded");      }    catch (Throwable e)      {	ExpectArrayIndex ("getBytes", e);      }  }    */  static void regionMatches()  {    if ("abcdefg".regionMatches (4, "abcdefg", 4, -1))      {	Fail ("regionMatches", "Should not return true");      }    try      {	if ("abcdefg".regionMatches (4, "abcdefg", 4, (1<<31)-1))	  {	    Fail ("regionMatches (2nd)", "Should not return true");	  }      }    catch (Throwable e)      {	Fail ("regionMatches (2nd)", e);      }  }  static void regionMatchesCase()  {    if ("abcdefg".regionMatches (true, 4, "abcdefg", 4, -1))      {	Fail ("regionMatchesCase", "Should not return true");      }    try      {	if ("abcdefg".regionMatches (true, 4, "abcdefg", 4, (1<<31)-1))	  {	    Fail ("regionMatchesCase (2nd)", "Should not return true");	  }      }    catch (Throwable e)      {	Fail ("regionMatchesCase (2nd)", e);      }  }  static void startsWith()  {    // We make the arg pretty big to try and cause a segfault.    String s = new String ("abcdef");    StringBuffer b = new StringBuffer (1000000);    b.setLength (1000000);    String arg = new String (b);    try      {	s.startsWith (arg, (1<<31) - 1000000);      }    catch (Throwable e)      {	Fail ("startsWith", e);      }  }  static void valueOf()  {    char[] array = new char[] {'a', 'b', 'c', 'd', 'e'};    try      {	String.valueOf (array, 4, (1<<31)-1);	Fail ("valueOf", "should not succeed");      }    catch (Throwable e)      {	ExpectArrayIndex ("valueOf", e);      }  }  public static void main (String[] args) throws Throwable  {    getChars();    //    getBytes();    regionMatches();    regionMatchesCase();    startsWith();    valueOf();    if (tests_failed == 0)      System.out.println ("ok");  }  static void ExpectArrayIndex (String test, Throwable e)  {    if (e instanceof ArrayIndexOutOfBoundsException)      return;    Fail (test, e);  }  static void Fail (String test, Object problem)  {    ++tests_failed;    System.err.print (test);    System.err.print ('\t');    System.err.println (problem);  }  static int tests_failed;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -