sbrk(2) broken

Dag-Erling Smørgrav des at des.no
Sat Jan 5 05:50:46 PST 2008


Robert Watson <rwatson at FreeBSD.org> writes:
> Another aspect of the problem is that applications have come to depend
> in malloc(3) returning NULL when memory is getting tight [...]

I don't do that any more.  Unless the program I'm writing is intended to
run for a long time and can gracefully handle an out-of-memory situation
(such as denying client requests until the situation improves), I write
malloc() wrappers which zero the allocated region before returning to
the caller, to force a SIGSEGV and spare the caller from having to check
the return value.

I sometimes also allocate a little bit extra and stick a magic signature
and an allocation length in there so my free() wrapper can check for
bugs and zero the allocated memory before freeing it.  I wouldn't need
any of this if my code only ran on FreeBSD, but most of my $DAYTIME_JOB
code these days runs on Linux first and FreeBSD second.

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the freebsd-current mailing list