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