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

Reply via email to