diff options
author | Gisle Aas <gisle@aas.no> | 2004-01-16 22:18:13 -0800 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2004-01-17 18:02:31 +0000 |
commit | e0767201fcaa7af00aab34d9bca69adf68de6451 (patch) | |
tree | 6bedb487edcf76e36f471ac2425d0f37c76e8fd7 /util.c | |
parent | 0e9b1cbd0a11bbc93e2b4fe899288c2d186c6460 (diff) | |
download | perl-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.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -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; } |