mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
aprintf is calling memfatal function now instead of calling abort function
for consistency with xmalloc/xrealloc
This commit is contained in:
parent
31ad1acbc1
commit
dfefb45edf
@ -171,7 +171,7 @@ aprintf (const char *fmt, ...)
|
||||
ret = vasprintf (&str, fmt, args);
|
||||
va_end (args);
|
||||
if (ret < 0 && errno == ENOMEM)
|
||||
abort (); /* for consistency with xmalloc/xrealloc */
|
||||
memfatal ("aprintf", UNKNOWN_ATTEMPTED_SIZE); /* for consistency with xmalloc/xrealloc */
|
||||
else if (ret < 0)
|
||||
return NULL;
|
||||
return str;
|
||||
|
@ -53,15 +53,29 @@ as that of the covered work. */
|
||||
/* Croak the fatal memory error and bail out with non-zero exit
|
||||
status. */
|
||||
|
||||
static void
|
||||
void
|
||||
memfatal (const char *context, long attempted_size)
|
||||
{
|
||||
/* Make sure we don't try to store part of the log line, and thus
|
||||
call malloc. */
|
||||
log_set_save_context (false);
|
||||
logprintf (LOG_ALWAYS,
|
||||
_("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
|
||||
exec_name, context, attempted_size);
|
||||
|
||||
/* We have different log outputs in different situations:
|
||||
1) output without bytes information
|
||||
2) output with bytes information */
|
||||
if (attempted_size == UNKNOWN_ATTEMPTED_SIZE)
|
||||
{
|
||||
logprintf (LOG_ALWAYS,
|
||||
_("%s: %s: Failed to allocate enough memory; memory exhausted.\n"),
|
||||
exec_name, context);
|
||||
}
|
||||
else
|
||||
{
|
||||
logprintf (LOG_ALWAYS,
|
||||
_("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
|
||||
exec_name, context, attempted_size);
|
||||
}
|
||||
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,13 @@ as that of the covered work. */
|
||||
#ifndef XMALLOC_H
|
||||
#define XMALLOC_H
|
||||
|
||||
/* Croak the fatal memory error and bail out with non-zero exit
|
||||
status. */
|
||||
void memfatal (const char *context, long attempted_size);
|
||||
|
||||
/* Constant is using when we don`t know attempted size exactly */
|
||||
#define UNKNOWN_ATTEMPTED_SIZE -3
|
||||
|
||||
/* Define this to use Wget's builtin malloc debugging, which is crude
|
||||
but occasionally useful. It will make Wget a lot slower and
|
||||
larger, and susceptible to aborting if malloc_table overflows, so
|
||||
|
Loading…
Reference in New Issue
Block a user