Greetings Martin.
I think the problem is that the Solaris patch utility has problems with
whitespace fuzz (specifically with changes in trailing whitespace).
When I pulled your attached copy of the patch and applied it (on my
linux box), I recieved the following message:
[EMAIL PROTECTED] util]$ patch < leakfix.diff
patching file runall.cpp
Hunk #1 succeeded at 73 with fuzz 1.
Attempting to apply it on one of our Solaris machine resulted in the
same behavior you observed (along with a failed application).
When I compared the output from svn diff after applying it with the
patch you sent back, I found the following output:
[EMAIL PROTECTED] util]$ svn diff | diff -u leakfix.diff -
--- leakfix.diff 2006-08-25 10:54:56.000000000 -0600
+++ - 2006-08-25 11:04:47.000000000 -0600
@@ -1,41 +1,41 @@
Index: runall.cpp
===================================================================
---- runall.cpp (revision 432706)
-+++ runall.cpp (working copy)
+--- runall.cpp (revision 436850)
++++ runall.cpp (working copy)
@@ -73,6 +73,9 @@
- argument string is '%x' (no quotes), the contents of the provided argv
+ argument string is '%x' (no quotes), the contents of the provided argv
array will be inserted into the return array at that point.
-
+
+ It is the responsibility of the caller to free() the returned
blocks of
+ memory, which were allocated by a call to split_opt_string().
+
@todo Figure out an escaping mechanism to allow '%x' to be passed
to an
executable
-
+
@@ -402,7 +405,6 @@
static void
run_target (char* target, char** argv)
{
- struct exec_attrs status;
char** childargv;
-
+
assert (0 != target);
@@ -418,12 +420,13 @@
printf ("%-25.25s ", target_name);
fflush (stdout);
-
+
- if (!check_target_ok (childargv [0]))
- return;
+ if (check_target_ok (childargv [0])) {
+ struct exec_attrs status = exec_file (childargv);
+ process_results (childargv [0], &status);
+ }
-
+
- status = exec_file (childargv);
-
- process_results (childargv [0], &status);
+ free (childargv [0]);
+ free (childargv);
}
-
+
/**
--Andrew Black
Martin Sebor wrote:
Andrew Black wrote:
Greetings all.
Below is a short patch to fix a couple minor memory leaks in the exec
utility. This leak was likely introduced with the support for complex
targets.
Hmm, I'm having trouble applying this patch on Solaris 9.
Attached is the the patch itself (copied from your post)
and the .rej file. Do you see what the problem is?
Martin
[...]