changeset 1219:9aae858397f9

Fix a mistake in previous commit re: integer overflow.
author Deepak Bhole <dbhole@redhat.com>
date Fri, 21 Nov 2008 18:35:27 -0500
parents b8307e2d80a5
children d1ff3aff9167
files ChangeLog IcedTeaPlugin.cc
diffstat 2 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Nov 21 22:48:56 2008 +0100
+++ b/ChangeLog	Fri Nov 21 18:35:27 2008 -0500
@@ -1,3 +1,7 @@
+2008-11-21  Deepak Bhole  <dbhole@redhat.com>
+
+	* IcedTeaPlugin.cc: Fix a mistake in previous commit re: integer overflow.
+
 2008-11-21  Mark Wielaard  <mark@klomp.org>
 
 	* patches/icedtea-stroker-finish.patch: New patch.
--- a/IcedTeaPlugin.cc	Fri Nov 21 22:48:56 2008 +0100
+++ b/IcedTeaPlugin.cc	Fri Nov 21 18:35:27 2008 -0500
@@ -4638,6 +4638,7 @@
   PLUGIN_TRACE_JNIENV ();
   nsCString retstr ("");
 
+  char* longVal = (char*) malloc(sizeof(char)*20);
   switch (type)
     {
     case jboolean_type:
@@ -4656,7 +4657,8 @@
       retstr.AppendInt (value.i);
       break;
     case jlong_type:
-      retstr += IcedTeaPrintfCString ("%ld", value.j);
+      sprintf(longVal, "%"PRId64, value.j);
+      retstr += longVal;
       break;
     case jfloat_type:
       retstr += IcedTeaPrintfCString ("%f", value.f);
@@ -4673,6 +4675,8 @@
       break;
     }
 
+  free(longVal);
+
   // Freed by calling function.
   return strdup (retstr.get ());
 }
@@ -4762,6 +4766,7 @@
   // Method.
   int arg = 0;
   char* fl;
+  char* longVal = (char*) malloc(sizeof(char)*20);
   while (id->signature[i] != stopchar)
     {
       switch (id->signature[i])
@@ -4785,7 +4790,8 @@
           retstr.AppendInt (args[arg].i);
           break;
         case 'J':
-          retstr += IcedTeaPrintfCString ("%ld", args[arg].j);
+          sprintf(longVal, "%"PRId64, args[arg].j);
+          retstr += longVal;
           break;
         case 'F':
           retstr += IcedTeaPrintfCString ("%f", args[arg].f);
@@ -4833,6 +4839,8 @@
 	  arg++;
     }
 
+  free(longVal);
+
   // Freed by calling function.
   return strdup (retstr.get ());
 }