lower parts of the manual page clearly say why using malloc() to
authorderaadt <deraadt@openbsd.org>
Sat, 22 Jun 2024 17:19:05 +0000 (17:19 +0000)
committerderaadt <deraadt@openbsd.org>
Sat, 22 Jun 2024 17:19:05 +0000 (17:19 +0000)
allocate sigaltstack regions is bad... so the example code should
not use malloc()...
ok semarie

lib/libc/sys/sigaltstack.2

index cb042c4..e1fe4ab 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $OpenBSD: sigaltstack.2,v 1.27 2024/03/29 06:48:04 deraadt Exp $
+.\"    $OpenBSD: sigaltstack.2,v 1.28 2024/06/22 17:19:05 deraadt Exp $
 .\"    $NetBSD: sigaltstack.2,v 1.3 1995/02/27 10:41:52 cgd Exp $
 .\"
 .\" Copyright (c) 1983, 1991, 1992, 1993
@@ -30,7 +30,7 @@
 .\"
 .\"     @(#)sigaltstack.2      8.1 (Berkeley) 6/4/93
 .\"
-.Dd $Mdocdate: March 29 2024 $
+.Dd $Mdocdate: June 22 2024 $
 .Dt SIGALTSTACK 2
 .Os
 .Sh NAME
@@ -99,7 +99,8 @@ is defined to be the number of bytes/chars that would be used to cover
 the usual case when allocating an alternate stack area.
 The following code fragment is typically used to allocate an alternate stack.
 .Bd -literal -offset indent
-if ((sigstk.ss_sp = malloc(SIGSTKSZ)) == NULL)
+if ((sigstk.ss_sp = mmap(NULL, SIGSTKSZ, PROT_READ|PROT_WRITE,
+    MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED)
        /* error return */
 sigstk.ss_size = SIGSTKSZ;
 sigstk.ss_flags = 0;