mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
malloc: Simplify implementation of __malloc_assert
It is prudent not to run too much code after detecting heap corruption, and __fxprintf is really complex. The line number and file name do not carry much information, so it is not included in the error message. (__libc_message only supports %s formatting.) The function name and assertion should provide some context. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
parent
8b84fb862c
commit
ac8047cdf3
@ -292,19 +292,14 @@
|
||||
# define __assert_fail(assertion, file, line, function) \
|
||||
__malloc_assert(assertion, file, line, function)
|
||||
|
||||
extern const char *__progname;
|
||||
|
||||
static void
|
||||
_Noreturn static void
|
||||
__malloc_assert (const char *assertion, const char *file, unsigned int line,
|
||||
const char *function)
|
||||
{
|
||||
(void) __fxprintf (NULL, "%s%s%s:%u: %s%sAssertion `%s' failed.\n",
|
||||
__progname, __progname[0] ? ": " : "",
|
||||
file, line,
|
||||
function ? function : "", function ? ": " : "",
|
||||
assertion);
|
||||
fflush (stderr);
|
||||
abort ();
|
||||
__libc_message (do_abort, "\
|
||||
Fatal glibc error: malloc assertion failure in %s: %s\n",
|
||||
function, assertion);
|
||||
__builtin_unreachable ();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user