delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/01/05/10:12:33

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; q=dns; s=default; b=HSUx+D
2mJv1NVR3E0vcjHKpA6i2NO0maLCqoTBXWResn9daIq7UZoA2gtDNqKuD97XLCuL
xsYKzYO4PMGD4KH4KA+nDSsJx7n4wAHgRWZJiSopW7GG4S3F0eEb2WDGX8AE4PnP
LeTNMuP/YCXa9xNot5A52Dne12QWL4zhGGuGg=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; s=default; bh=fzoPQNrTaava
u3j0GEcd7x6RxFI=; b=KJ1AhqK8ScK4vMysnk/NS+ZvLNoW8YnY7Mu4ZeSs6bx1
CgAZka65cithB+FtyODgY+2kEDNQrzNTknv5Oo1rnsMJGEyBlW0SXVobdh6/xAoZ
RsgM7rqnRfDQC4SUAd2GGas9+BVH66rtaP18IesrpkU3srJlNepnXi5omLe5lSI=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2
X-HELO: mx1.redhat.com
Message-ID: <54AAA9CB.5080604@redhat.com>
Date: Mon, 05 Jan 2015 08:12:11 -0700
From: Eric Blake <eblake AT redhat DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Cygwin 1.7 pthread hides segmentation fault
References: <CAHSE2Wcm6WvmA-rtdgQ=5NuQnWwhes9iGn8fZj15YSzYF8GmLw AT mail DOT gmail DOT com>
In-Reply-To: <CAHSE2Wcm6WvmA-rtdgQ=5NuQnWwhes9iGn8fZj15YSzYF8GmLw@mail.gmail.com>
OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg
X-IsSubscribed: yes

--N8WVHc7PbAIeBCE46sgsKsk2VoDd3X7id
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 01/04/2015 07:14 PM, Howard Guo wrote:
> It seems that segfaults go unreported using pthread and Cygwin 1.7.33-2.
>=20
> Here is a minimal code piece to reproduce:
>=20
> #include <pthread.h>
>=20
> void* thread_run(void* _) {
>         int *p =3D 0;
>         *p =3D 1;
>         return NULL;
> }
>=20
> int main(int argc, char** argv) {
>         pthread_t t1;
>         pthread_create(&t1, NULL, thread_run, NULL);
>         pthread_join(t1, NULL);
>         return 0;
> }
>=20
> Simply compiled with gcc -pthread, and the result executable returns 0
> without reporting segmentation fault.
>=20
> Could this be a bug?

Your program induces undefined behavior, and therefore, it could be
argued that the bug is in your program, not in cygwin.  But you are
correct that for optimal quality of implementation, we should be
delivering a SIGSEGV at the point where you assign through the bogus
pointer.  (I'm the libsigsegv maintainer, and the only way to PORTABLY
prove whether pthread is eating segfaults is to use mmap()/mprotect()
and cause a fault through a valid pointer; as faulting through the NULL
pointer is not portable.)

--=20
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


--N8WVHc7PbAIeBCE46sgsKsk2VoDd3X7id
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCAAGBQJUqqnLAAoJEKeha0olJ0NqxVgIAI5jR5ZbWCZAj2Hi05F0N7U6
TgO8O/lvAvfziMS1VSiV5hmrh7AL+0ApXILCIw/4MbEuve6OgyajNv+Kb8Ln8fFq
jGdKWpwdSGYcqNq0gGev2vKX7lzoUmPqL8fMFLEjOZjz8UjcZeFjvGGMkCqnwf/A
v3LgMs1aV0/9jeAOxivim5Sm52dhgvYa2xiN0MhFKnmDd5BHzAFBK2ebXANWwsQ/
pt65H9Rgf3pKKdUi6WH+3+ANDJZJFThETAokUHSwj7/tPic6N+SCsZ/wPpq4cGsA
8Tb/YP350LyAxiYG+G5FlrRtcBCk0cMEpC5rUBDtnATBO5qDnW7w8RXP/mBTGss=
=JDWq
-----END PGP SIGNATURE-----

--N8WVHc7PbAIeBCE46sgsKsk2VoDd3X7id--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019