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);
|
ret = vasprintf (&str, fmt, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
if (ret < 0 && errno == ENOMEM)
|
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)
|
else if (ret < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return str;
|
return str;
|
||||||
|
@ -53,15 +53,29 @@ as that of the covered work. */
|
|||||||
/* Croak the fatal memory error and bail out with non-zero exit
|
/* Croak the fatal memory error and bail out with non-zero exit
|
||||||
status. */
|
status. */
|
||||||
|
|
||||||
static void
|
void
|
||||||
memfatal (const char *context, long attempted_size)
|
memfatal (const char *context, long attempted_size)
|
||||||
{
|
{
|
||||||
/* Make sure we don't try to store part of the log line, and thus
|
/* Make sure we don't try to store part of the log line, and thus
|
||||||
call malloc. */
|
call malloc. */
|
||||||
log_set_save_context (false);
|
log_set_save_context (false);
|
||||||
logprintf (LOG_ALWAYS,
|
|
||||||
_("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
|
/* We have different log outputs in different situations:
|
||||||
exec_name, context, attempted_size);
|
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);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,13 @@ as that of the covered work. */
|
|||||||
#ifndef XMALLOC_H
|
#ifndef XMALLOC_H
|
||||||
#define 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
|
/* Define this to use Wget's builtin malloc debugging, which is crude
|
||||||
but occasionally useful. It will make Wget a lot slower and
|
but occasionally useful. It will make Wget a lot slower and
|
||||||
larger, and susceptible to aborting if malloc_table overflows, so
|
larger, and susceptible to aborting if malloc_table overflows, so
|
||||||
|
Loading…
Reference in New Issue
Block a user