summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-02-21 08:55:38 +0000
committerphk <phk@FreeBSD.org>2004-02-21 08:55:38 +0000
commit9942edab59904c839d523322dee54c39381b8d8f (patch)
tree56f0e74ae2fa09a15f7393f84fcb1479a89ce7d7 /lib
parent0c90ec6882debe4c12582eb39cf69236153ce76e (diff)
downloadFreeBSD-src-9942edab59904c839d523322dee54c39381b8d8f.zip
FreeBSD-src-9942edab59904c839d523322dee54c39381b8d8f.tar.gz
Move the check for sensitive processes to the point where the exception
has been hit, this makes it cover more cases. Call the message function directly rather than fiddle with flag-saving when we find an unknown character in our options. The 'A' flag should not trigger on legal out of memory conditions.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/stdlib/malloc.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index b842ac8..c867aba 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -315,7 +315,11 @@ static void
wrtwarning(char *p)
{
- if (malloc_abort)
+ /*
+ * Sensitive processes, somewhat arbitrarily defined here as setuid,
+ * setgid, root and wheel cannot afford to have malloc mistakes.
+ */
+ if (malloc_abort || issetugid() || getuid() == 0 || getgid() == 0)
wrterror(p);
_malloc_message(_getprogname(), malloc_func, " warning: ", p);
}
@@ -458,21 +462,13 @@ malloc_init(void)
case 'z': malloc_zero = 0; break;
case 'Z': malloc_zero = 1; break;
default:
- j = malloc_abort;
- malloc_abort = 0;
- wrtwarning("unknown char in MALLOC_OPTIONS\n");
- malloc_abort = j;
+ _malloc_message(_getprogname(), malloc_func,
+ " warning: ", "unknown char in MALLOC_OPTIONS\n");
break;
}
}
}
- /*
- * Sensitive processes, somewhat arbitrarily defined here as setuid,
- * setgid, root and wheel cannot afford to have malloc mistakes.
- */
- if (issetugid() || getuid() == 0 || getgid() == 0)
- malloc_abort = 1;
UTRACE(0, 0, 0);
@@ -751,9 +747,6 @@ imalloc(size_t size)
else
result = malloc_pages(size);
- if (malloc_abort && result == NULL)
- wrterror("allocation failed\n");
-
if (malloc_zero && result != NULL)
memset(result, 0, size);
OpenPOWER on IntegriCloud