potential set_child_tid/clear_child_tid bug

From: David Mosberger (davidm@napali.hpl.hp.com)
Date: Thu Jun 19 2003 - 14:37:22 EST


At the moment, if you don't set CLONE_CHILD_SETTID/CLONE_CHILD_CLEARTID,
the {set,clear}_child_tid values get inherited from the parent task.
I may be missing something, but I suspect that's not the intended behavior.
The patch below instead clears the respective members.

        --david

diff -Nru a/kernel/fork.c b/kernel/fork.c
--- a/kernel/fork.c Thu Jun 19 12:20:17 2003
+++ b/kernel/fork.c Thu Jun 19 12:20:17 2003
@@ -889,11 +889,15 @@
 
         if (clone_flags & CLONE_CHILD_SETTID)
                 p->set_child_tid = child_tidptr;
+ else
+ p->set_child_tid = NULL;
         /*
          * Clear TID on mm_release()?
          */
         if (clone_flags & CLONE_CHILD_CLEARTID)
                 p->clear_child_tid = child_tidptr;
+ else
+ p->clear_child_tid = NULL;
 
         /*
          * Syscall tracing should be turned off in the child regardless
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jun 23 2003 - 22:00:30 EST