prims.cc (next_property_value): Never return NULL.
authorArchit Shah <ashah@redhat.com>
Tue, 24 Jan 2006 18:10:39 +0000 (18:10 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 24 Jan 2006 18:10:39 +0000 (18:10 +0000)
* prims.cc (next_property_value): Never return NULL.
(process_gcj_properties): Copy 'props' before using it.

Co-Authored-By: Tom Tromey <tromey@redhat.com>
From-SVN: r110177

libjava/ChangeLog
libjava/prims.cc

index d13425b1316c24445d203bdc1ca18018ca4cdb55..a2357c3e747e7e2a95ec55b1797ac80dd3abe3be 100644 (file)
@@ -1,3 +1,9 @@
+2006-01-24  Archit Shah  <ashah@redhat.com>
+           Tom Tromey  <tromey@redhat.com>
+
+       * prims.cc (next_property_value): Never return NULL.
+       (process_gcj_properties): Copy 'props' before using it.
+
 2006-01-23  Keith Seitz  <keiths@redhat.com>
 
        * java/lang/Class.h (_Jv_FindInterpreterMethod): Add new declaration.
index 09bca0b6f71f00ad8e737aaae4b60b1817501c26..a968a9b3013f7be844833330518dad63cc96daaa 100644 (file)
@@ -857,10 +857,6 @@ next_property_value (char *s, size_t *length)
   while (isspace (*s))
     s++;
 
-  // If we've reached the end, return NULL.
-  if (*s == 0)
-    return NULL;
-
   // Determine the length of the property value.
   while (s[l] != 0
         && ! isspace (s[l])
@@ -883,13 +879,18 @@ static void
 process_gcj_properties ()
 {
   char *props = getenv("GCJ_PROPERTIES");
-  char *p = props;
-  size_t length;
-  size_t property_count = 0;
 
   if (NULL == props)
     return;
 
+  // Later on we will write \0s into this string.  It is simplest to
+  // just duplicate it here.
+  props = strdup (props);
+
+  char *p = props;
+  size_t length;
+  size_t property_count = 0;
+
   // Whip through props quickly in order to count the number of
   // property values.
   while (p && (p = next_property_key (p, &length)))