xref: /openbsd-src/regress/usr.bin/lastcomm/crash.c (revision 190ee811b43feb5a338e2a24f81162cbd861b675)
1*190ee811Sbluhm /*	$OpenBSD: crash.c,v 1.2 2019/09/10 19:01:24 bluhm Exp $	*/
2*190ee811Sbluhm /*
3*190ee811Sbluhm  * Copyright (c) 2017-2019 Alexander Bluhm <bluhm@openbsd.org>
4*190ee811Sbluhm  *
5*190ee811Sbluhm  * Permission to use, copy, modify, and distribute this software for any
6*190ee811Sbluhm  * purpose with or without fee is hereby granted, provided that the above
7*190ee811Sbluhm  * copyright notice and this permission notice appear in all copies.
8*190ee811Sbluhm  *
9*190ee811Sbluhm  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*190ee811Sbluhm  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*190ee811Sbluhm  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*190ee811Sbluhm  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*190ee811Sbluhm  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*190ee811Sbluhm  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*190ee811Sbluhm  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*190ee811Sbluhm  */
172f1f92d1Sbluhm 
182f1f92d1Sbluhm #include <err.h>
192f1f92d1Sbluhm #include <stdlib.h>
202f1f92d1Sbluhm #include <signal.h>
21*190ee811Sbluhm #include <unistd.h>
222f1f92d1Sbluhm 
232f1f92d1Sbluhm void handler(int);
242f1f92d1Sbluhm 
252f1f92d1Sbluhm int
main(int argc,char * argv[])262f1f92d1Sbluhm main(int argc, char *argv[])
272f1f92d1Sbluhm {
282f1f92d1Sbluhm 	int *i;
292f1f92d1Sbluhm 
302f1f92d1Sbluhm 	if (signal(SIGSEGV, handler) == SIG_ERR)
312f1f92d1Sbluhm 		err(1, "signal");
322f1f92d1Sbluhm 	i = (void *)0x10UL;
332f1f92d1Sbluhm 	(*i)++;
342f1f92d1Sbluhm 	return *i;
352f1f92d1Sbluhm }
362f1f92d1Sbluhm 
372f1f92d1Sbluhm void
handler(int signum)382f1f92d1Sbluhm handler(int signum)
392f1f92d1Sbluhm {
40*190ee811Sbluhm 	_exit(0);
412f1f92d1Sbluhm }
42