From cb0ad18d6348487257f2a16b7d4cd232614653ae Mon Sep 17 00:00:00 2001 From: ru Date: Tue, 5 Sep 2006 16:30:11 +0000 Subject: alloca() cannot check if the allocation is valid; mention the consequences. Obtained from: OpenBSD --- lib/libc/stdlib/alloca.3 | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/libc/stdlib/alloca.3 b/lib/libc/stdlib/alloca.3 index e87cd9f..d55cb75 100644 --- a/lib/libc/stdlib/alloca.3 +++ b/lib/libc/stdlib/alloca.3 @@ -32,7 +32,7 @@ .\" @(#)alloca.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 4, 1993 +.Dd September 5, 2006 .Dt ALLOCA 3 .Os .Sh NAME @@ -57,9 +57,6 @@ return. The .Fn alloca function returns a pointer to the beginning of the allocated space. -If the allocation failed, a -.Dv NULL -pointer is returned. .Sh SEE ALSO .Xr brk 2 , .Xr calloc 3 , @@ -81,3 +78,15 @@ The function is machine and compiler dependent; its use is discouraged. +.Pp +The +.Fn alloca +function is slightly unsafe because it cannot ensure that the pointer +returned points to a valid and usable block of memory. +The allocation made may exceed the bounds of the stack, or even go +further into other objects in memory, and +.Fn alloca +cannot determine such an error. +Avoid +.Fn alloca +with large unbounded allocations. -- cgit v1.1