summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/malloc.3
diff options
context:
space:
mode:
authorotto <>2018-11-21 06:57:04 +0000
committerotto <>2018-11-21 06:57:04 +0000
commit9d3c55760e9cc7dca8b55958537265f1162dc63c (patch)
tree6410826e21b5251b799d88942013e9629d773c3d /src/lib/libc/stdlib/malloc.3
parent02826236d6b2d590f7d31af8a7b01f56f6ea2a6a (diff)
downloadopenbsd-9d3c55760e9cc7dca8b55958537265f1162dc63c.tar.gz
openbsd-9d3c55760e9cc7dca8b55958537265f1162dc63c.tar.bz2
openbsd-9d3c55760e9cc7dca8b55958537265f1162dc63c.zip
Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so: Delete malloc_usable_size(). It is a function that blurs the line between malloc managed memory and application managed memory and exposes some of the internal workings of malloc. If an application relies on that, it is likely to break using another implementation of malloc. If you want usable size x, just allocate x bytes. ok deraadt@ and other devs
Diffstat (limited to 'src/lib/libc/stdlib/malloc.3')
-rw-r--r--src/lib/libc/stdlib/malloc.331
1 files changed, 4 insertions, 27 deletions
diff --git a/src/lib/libc/stdlib/malloc.3 b/src/lib/libc/stdlib/malloc.3
index c1776f61cb..c0472ee2b9 100644
--- a/src/lib/libc/stdlib/malloc.3
+++ b/src/lib/libc/stdlib/malloc.3
@@ -30,9 +30,9 @@
30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE. 31.\" SUCH DAMAGE.
32.\" 32.\"
33.\" $OpenBSD: malloc.3,v 1.119 2018/11/18 16:15:18 otto Exp $ 33.\" $OpenBSD: malloc.3,v 1.120 2018/11/21 06:57:04 otto Exp $
34.\" 34.\"
35.Dd $Mdocdate: November 18 2018 $ 35.Dd $Mdocdate: November 21 2018 $
36.Dt MALLOC 3 36.Dt MALLOC 3
37.Os 37.Os
38.Sh NAME 38.Sh NAME
@@ -43,8 +43,7 @@
43.Nm reallocarray , 43.Nm reallocarray ,
44.Nm recallocarray , 44.Nm recallocarray ,
45.Nm freezero , 45.Nm freezero ,
46.Nm aligned_alloc , 46.Nm aligned_alloc
47.Nm malloc_usable_size
48.Nd memory allocation and deallocation 47.Nd memory allocation and deallocation
49.Sh SYNOPSIS 48.Sh SYNOPSIS
50.In stdlib.h 49.In stdlib.h
@@ -65,7 +64,6 @@
65.Ft void * 64.Ft void *
66.Fn aligned_alloc "size_t alignment" "size_t size" 65.Fn aligned_alloc "size_t alignment" "size_t size"
67.Ft size_t 66.Ft size_t
68.Fn malloc_usable_size "void *ptr"
69.Vt char *malloc_options ; 67.Vt char *malloc_options ;
70.Sh DESCRIPTION 68.Sh DESCRIPTION
71The standard functions 69The standard functions
@@ -236,25 +234,6 @@ If
236is not a multiple of 234is not a multiple of
237.Fa alignment , 235.Fa alignment ,
238behavior is undefined. 236behavior is undefined.
239.Pp
240The
241.Fn malloc_usable_size
242function returns the actual size of the allocated memory pointed to by
243.Va ptr .
244If
245.Va ptr
246is
247.Dv NULL ,
248it returns 0.
249If
250.Va ptr
251was never returned by an allocation function or freed before,
252the behavior is undefined.
253This function should not be relied upon since it exposes some of the internal
254workings of the
255.Fn malloc
256family of functions.
257Writing beyond the requested size introduces undefined behavior.
258.Sh RETURN VALUES 237.Sh RETURN VALUES
259Upon successful completion, the allocation functions 238Upon successful completion, the allocation functions
260return a pointer to the allocated space; otherwise, 239return a pointer to the allocated space; otherwise,
@@ -640,9 +619,7 @@ function appeared in
640.Ox 6.2 . 619.Ox 6.2 .
641The 620The
642.Fn aligned_alloc 621.Fn aligned_alloc
643and 622function appeared in
644.Fn malloc_usable_size
645functions appeared in
646.Ox 6.5 . 623.Ox 6.5 .
647.Sh CAVEATS 624.Sh CAVEATS
648When using 625When using