summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorGisle Aas <gisle@aas.no>2004-01-16 22:18:13 -0800
committerDave Mitchell <davem@fdisolutions.com>2004-01-17 18:02:31 +0000
commite0767201fcaa7af00aab34d9bca69adf68de6451 (patch)
tree6bedb487edcf76e36f471ac2425d0f37c76e8fd7 /util.c
parent0e9b1cbd0a11bbc93e2b4fe899288c2d186c6460 (diff)
downloadperl-e0767201fcaa7af00aab34d9bca69adf68de6451.tar.gz
Perl core dumps when running out of memory [PATCH]
Message-Id: <lrsmiebqvu.fsf@caliper.activestate.com> Display 'out of memeory' errors using low-level I/O to avoid recursive failure and so coredumps. p4raw-id: //depot/perl@22169
Diffstat (limited to 'util.c')
-rw-r--r--util.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/util.c b/util.c
index fffc1c372c..b20cd8c953 100644
--- a/util.c
+++ b/util.c
@@ -72,7 +72,9 @@ Perl_safesysmalloc(MEM_SIZE size)
else if (PL_nomemok)
return Nullch;
else {
- PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH;
+ /* Can't use PerlIO to write as it allocates memory */
+ PerlLIO_write(PerlIO_fileno(Perl_error_log),
+ PL_no_mem, strlen(PL_no_mem));
my_exit(1);
return Nullch;
}
@@ -119,7 +121,9 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
else if (PL_nomemok)
return Nullch;
else {
- PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH;
+ /* Can't use PerlIO to write as it allocates memory */
+ PerlLIO_write(PerlIO_fileno(Perl_error_log),
+ PL_no_mem, strlen(PL_no_mem));
my_exit(1);
return Nullch;
}
@@ -171,7 +175,9 @@ Perl_safesyscalloc(MEM_SIZE count, MEM_SIZE size)
else if (PL_nomemok)
return Nullch;
else {
- PerlIO_puts(Perl_error_log,PL_no_mem) FLUSH;
+ /* Can't use PerlIO to write as it allocates memory */
+ PerlLIO_write(PerlIO_fileno(Perl_error_log),
+ PL_no_mem, strlen(PL_no_mem));
my_exit(1);
return Nullch;
}