[git commit nptl] linuxthreads.old: fix crash in debug code

Mike Frysinger vapier at gentoo.org
Wed Aug 19 11:29:41 UTC 2009


commit: http://git.uclibc.org/uClibc/commit/?id=68da1f7c28f306bc938ec905a6b7b31cf4321d78
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl

If pthread_join() is called and there is nothing to join, then the debug
code will attempt to dereference a NULL pointer.

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 libpthread/linuxthreads.old/join.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libpthread/linuxthreads.old/join.c b/libpthread/linuxthreads.old/join.c
index ee34493..4a7c0d8 100644
--- a/libpthread/linuxthreads.old/join.c
+++ b/libpthread/linuxthreads.old/join.c
@@ -77,7 +77,7 @@ void __pthread_do_exit(void *retval, char *currentframe)
   THREAD_SETMEM(self, p_terminated, 1);
   /* See if someone is joining on us */
   joining = THREAD_GETMEM(self, p_joining);
-  PDEBUG("joining = %p, pid=%d\n", joining, joining->p_pid);
+  PDEBUG("joining = %p, pid=%d\n", joining, joining ? joining->p_pid : 0);
   __pthread_unlock(THREAD_GETMEM(self, p_lock));
   /* Restart joining thread if any */
   if (joining != NULL) restart(joining);
-- 
1.6.3.3



More information about the uClibc-cvs mailing list