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