|
|
36ca139 |
diff -up frysk-0.4/frysk-imports/tests/frysk3525/exit47.c.2 frysk-0.4/frysk-imports/tests/frysk3525/exit47.c
|
|
|
36ca139 |
--- frysk-0.4/frysk-imports/tests/frysk3525/exit47.c.2 2008-06-09 14:03:07.000000000 -0400
|
|
|
36ca139 |
+++ frysk-0.4/frysk-imports/tests/frysk3525/exit47.c 2009-02-09 11:53:10.000000000 -0500
|
|
|
36ca139 |
@@ -59,7 +59,7 @@ main (int argc, char *argv[], char *envp
|
|
|
36ca139 |
|
|
|
36ca139 |
printf ("%d forking\n", getpid ());
|
|
|
36ca139 |
pid_t ppid = getpid ();
|
|
|
36ca139 |
- volatile pid_t pid;
|
|
|
36ca139 |
+ volatile pid_t pid = -1; // updated by child during vfork
|
|
|
36ca139 |
pid_t v = vfork ();
|
|
|
36ca139 |
switch (v) {
|
|
|
36ca139 |
|
|
|
36ca139 |
diff -up frysk-0.4/frysk-imports/tests/frysk3595/detach-multi-thread.c.2 frysk-0.4/frysk-imports/tests/frysk3595/detach-multi-thread.c
|
|
|
36ca139 |
--- frysk-0.4/frysk-imports/tests/frysk3595/detach-multi-thread.c.2 2008-06-09 14:03:07.000000000 -0400
|
|
|
36ca139 |
+++ frysk-0.4/frysk-imports/tests/frysk3595/detach-multi-thread.c 2009-02-09 11:53:10.000000000 -0500
|
|
|
36ca139 |
@@ -198,7 +198,7 @@ main (int argc, char *argv[], char *envp
|
|
|
36ca139 |
printf ("%d forking daemon\n", getpid ());
|
|
|
36ca139 |
pid_t ppid = getpid ();
|
|
|
36ca139 |
#define NR_TASKS 2
|
|
|
36ca139 |
- volatile pid_t tasks[NR_TASKS];
|
|
|
36ca139 |
+ volatile pid_t tasks[NR_TASKS] = { }; // updated by vfork child
|
|
|
36ca139 |
pid_t v = vfork ();
|
|
|
36ca139 |
switch (v) {
|
|
|
36ca139 |
|
|
|
36ca139 |
diff -up frysk-0.4/frysk-sys/frysk/sys/proc/cni/Stat.cxx.2 frysk-0.4/frysk-sys/frysk/sys/proc/cni/Stat.cxx
|
|
|
36ca139 |
--- frysk-0.4/frysk-sys/frysk/sys/proc/cni/Stat.cxx.2 2009-02-09 12:48:47.000000000 -0500
|
|
|
36ca139 |
+++ frysk-0.4/frysk-sys/frysk/sys/proc/cni/Stat.cxx 2009-02-09 12:53:16.000000000 -0500
|
|
|
36ca139 |
@@ -59,8 +59,8 @@ static frysk::sys::proc::Stat*
|
|
|
36ca139 |
scan(const char*p, frysk::sys::proc::Stat* const stat, frysk::rsl::Log* fine) {
|
|
|
36ca139 |
// The "comm" needs special treatment, need to scan backwards for
|
|
|
36ca139 |
// ')' as the command itself could contain ')'.
|
|
|
36ca139 |
- char* commStart = ::strchr (p, '(');
|
|
|
36ca139 |
- char* commEnd = ::strrchr (p, ')');
|
|
|
36ca139 |
+ char* commStart = (char*) ::strchr ((char*)p, '(');
|
|
|
36ca139 |
+ char* commEnd = (char*) ::strrchr ((char*)p, ')');
|
|
|
36ca139 |
if (commStart == NULL || commEnd == NULL)
|
|
|
36ca139 |
throwRuntimeException ("botched comm field");
|
|
|
36ca139 |
stat->comm = JvNewStringLatin1 (commStart + 1, commEnd - commStart - 1);
|
|
|
36ca139 |
diff -up frysk-0.4/frysk-sys/frysk/sys/proc/jni/Stat.cxx.2 frysk-0.4/frysk-sys/frysk/sys/proc/jni/Stat.cxx
|
|
|
36ca139 |
--- frysk-0.4/frysk-sys/frysk/sys/proc/jni/Stat.cxx.2 2009-02-09 13:49:48.000000000 -0500
|
|
|
36ca139 |
+++ frysk-0.4/frysk-sys/frysk/sys/proc/jni/Stat.cxx 2009-02-09 13:50:34.000000000 -0500
|
|
|
36ca139 |
@@ -60,8 +60,8 @@ static void
|
|
|
36ca139 |
scan(jnixx::env env, const char*p, Stat& stat, frysk::rsl::Log fine) {
|
|
|
36ca139 |
// The "comm" needs special treatment, need to scan backwards for
|
|
|
36ca139 |
// ')' as the command itself could contain ')'.
|
|
|
36ca139 |
- char* commStart = ::strchr(p, '(');
|
|
|
36ca139 |
- char* commEnd = ::strrchr(p, ')');
|
|
|
36ca139 |
+ char* commStart = (char*) ::strchr((char*)p, '(');
|
|
|
36ca139 |
+ char* commEnd = (char*) ::strrchr((char*)p, ')');
|
|
|
36ca139 |
if (commStart == NULL || commEnd == NULL)
|
|
|
36ca139 |
runtimeException(env, "botched comm field");
|
|
|
36ca139 |
int commLength = commEnd - (commStart + 1);
|