OSDN Git Service

Fix for PR libgcj/5064.
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Dec 2001 03:58:40 +0000 (03:58 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Dec 2001 03:58:40 +0000 (03:58 +0000)
* java/lang/natClassLoader.cc: Don't include stdio.h.
(_Jv_RegisterClassHookDefault): Don't use snprintf.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47861 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/natClassLoader.cc

index 62884b8..eb5742a 100644 (file)
@@ -1,3 +1,9 @@
+2001-12-10  Tom Tromey  <tromey@redhat.com>
+
+       Fix for PR libgcj/5064.
+       * java/lang/natClassLoader.cc: Don't include stdio.h.
+       (_Jv_RegisterClassHookDefault): Don't use snprintf.
+
 2001-12-09  Per Bothner  <per@bothner.com>
 
        * gnu/gcj/xlib/XImage.java (toString):  Add missing initialization.
index c9a5872..59aca07 100644 (file)
@@ -14,7 +14,6 @@ details.  */
 
 #include <stdlib.h>
 #include <string.h>
-#include <stdio.h>
 
 #include <gcj/cni.h>
 #include <jvm.h>
@@ -463,9 +462,13 @@ _Jv_RegisterClassHookDefault (jclass klass)
        {
          // If you get this, it means you have the same class in two
          // different libraries.
+#define TEXT "Duplicate class registration: "
+         // We size-limit MESSAGE so that you can't trash the stack.
          char message[200];
-         snprintf (&message[0], 200, "Duplicate class registration: %s",
-                   klass->name->data);
+         strcpy (message, TEXT);
+         strncpy (message + sizeof (TEXT) - 1, klass->name->data,
+                  sizeof (message) - sizeof (TEXT));
+         message[sizeof (message) - 1] = '\0';
          if (! gcj::runtimeInitialized)
            JvFail (message);
          else