changeset 1675:64057113c917

2009-08-27 Kees Cook <kees@canonical.com> * patches/openjdk/oj100103-debugger-socket-overflow.patch: New. Fix buffer overflow in debugger's socket handler. https://bugs.openjdk.java.net/show_bug.cgi?id=100103
author doko@ubuntu.com
date Thu, 27 Aug 2009 17:43:31 +0200
parents ce4af55508b6
children b3106a2e4455
files ChangeLog Makefile.am patches/openjdk/oj100103-debugger-socket-overflow.patch
diffstat 3 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Aug 27 17:37:13 2009 +0200
+++ b/ChangeLog	Thu Aug 27 17:43:31 2009 +0200
@@ -1,3 +1,9 @@
+2009-08-27  Kees Cook <kees@canonical.com>
+
+	* patches/openjdk/oj100103-debugger-socket-overflow.patch: New.
+	Fix buffer overflow in debugger's socket handler.
+	https://bugs.openjdk.java.net/show_bug.cgi?id=100103
+
 2009-08-27  Matthias Klose  <doko@ubuntu.com>
 
 	* acinclude.m4, configure.ac (FIND_PULSEAUDIO): Remove.
--- a/Makefile.am	Thu Aug 27 17:37:13 2009 +0200
+++ b/Makefile.am	Thu Aug 27 17:43:31 2009 +0200
@@ -702,6 +702,7 @@
 	patches/icedtea-disable-cc-incompatible-sanity-checks.patch \
 	patches/icedtea-explicit-target-arch.patch \
 	patches/openjdk/6648816.patch \
+	patches/openjdk/oj100103-debugger-socket-overflow.patch \
 	$(DISTRIBUTION_PATCHES)
 
 stamps/extract.stamp: stamps/download.stamp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/oj100103-debugger-socket-overflow.patch	Thu Aug 27 17:43:31 2009 +0200
@@ -0,0 +1,17 @@
+Description: buffer not large enough for maximum size of debugger warning.
+ (Largest error could be 73 bytes long: "handshake failed - received >Here's
+ a poke < - excepted >JDWP-Handshake<")
+Ubuntu: https://launchpad.net/bugs/419018
+Upstream: https://bugs.openjdk.java.net/show_bug.cgi?id=100103
+
+--- openjdk/jdk/src/share/transport/socket/socketTransport.c~	2009-08-25 21:19:38.000000000 -0700
++++ openjdk/jdk/src/share/transport/socket/socketTransport.c	2009-08-25 21:19:55.000000000 -0700
+@@ -168,7 +168,7 @@ handshake(int fd, jlong timeout) {
+     }
+     for (i=0; i<(int)strlen(hello); i++) {
+         if (b[i] != hello[i]) {
+-            char msg[64];
++            char msg[80];
+             strcpy(msg, "handshake failed - received >");
+             strncat(msg, b, strlen(hello));
+             strcat(msg, "< - excepted >");