diff options
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 6 | ||||
| -rw-r--r-- | libjava/java/lang/natClassLoader.cc | 9 | 
2 files changed, 12 insertions, 3 deletions
| diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 62884b86ef9..eb5742ab724 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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. diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index c9a58726a3c..59aca071ea2 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -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 | 

