Hi, pthread__error()s in pthread_equal() cause segfault during start of pkgsrc/www/firefox-72.0.2.
Without pthread__error()s, www/firefox works fine like as follows. However I have no idea why I get segfaults. Could you take a look at this problem? Index: lib/libpthread/pthread.c =================================================================== RCS file: /cvsroot/src/lib/libpthread/pthread.c,v retrieving revision 1.162 diff -u -r1.162 pthread.c --- lib/libpthread/pthread.c 29 Jan 2020 17:11:57 -0000 1.162 +++ lib/libpthread/pthread.c 1 Feb 2020 15:58:03 -0000 @@ -770,11 +770,13 @@ if (__predict_false(__uselibcstub)) return __libc_thr_equal_stub(t1, t2); +#if 0 pthread__error(EINVAL, "Invalid thread", t1->pt_magic == PT_MAGIC); pthread__error(EINVAL, "Invalid thread", t2->pt_magic == PT_MAGIC); +#endif /* Nothing special here. */ return (t1 == t2); @@ -1108,7 +1110,7 @@ { char buf[1024]; size_t len; - + if (pthread__diagassert == 0) return; "Kamil Rytarowski" <ka...@netbsd.org> writes: > Module Name: src > Committed By: kamil > Date: Wed Jan 29 16:03:44 UTC 2020 > > Modified Files: > src/lib/libpthread: pthread.c pthread_getcpuclockid.c > > Log Message: > Chack thread->pt_magic with PT_MAGIC promptly > > Rearrange some checks to avoid verifying pthread_t after using it. > > > To generate a diff of this commit: > cvs rdiff -u -r1.160 -r1.161 src/lib/libpthread/pthread.c > cvs rdiff -u -r1.2 -r1.3 src/lib/libpthread/pthread_getcpuclockid.c > > Please note that diffs are not public domain; they are subject to the > copyright notices on the relevant files. > -- Ryo ONODERA // r...@tetera.org PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3