(original) (raw)

Hello Kumar,

I'd like you to do a code review and file a bug.

Synopsis: Fix small memory leak in launcher
Description:

This little change to the launcher
- fixes a leak of 20 bytes in *every* java process

- fixes the leak of classpath wildcard expansion
� when that feature is used.

diff --git a/src/share/bin/java.c b/src/share/bin/java.c
--- a/src/share/bin/java.c
+++ b/src/share/bin/java.c
@@ -683,10 +683,14 @@

�SetClassPath(const char *s)
�{
���� char *def;
+��� const char *orig = s;
+��� static const char format[] = "-Djava.class.path=%s";
���� s = JLI_WildcardExpandClasspath(s);
-��� def = JLI_MemAlloc(JLI_StrLen(s) + 40);

-��� sprintf(def, "-Djava.class.path=%s", s);
+��� def = JLI_MemAlloc(sizeof(format) - 2 + JLI_StrLen(s));
+��� sprintf(def, format, s);
���� AddOption(def, NULL);
+��� if (s != orig)
+������� JLI_MemFree((char *) s);

�}

�/*


This code is particularly prone to off-by-one bugs,
but I think we can get it right.

Webrev at:
http://cr.openjdk.java.net/~martin/launcher-leak/


Is Kowalski still around?� He may have been the last person to touch this.

Martin