On 01.02.2020 17:01, Ryo ONODERA wrote: > 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" <kamil%netbsd.org@localhost> 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. >> > I will have a look, but it will take a while to build firefox for me.
Attachment:
signature.asc
Description: OpenPGP digital signature