diff options
| author | Paul Eggert | 2014-09-22 22:42:47 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-09-22 22:42:47 -0700 |
| commit | cb8e2bfba7e712815203264a0c40bf2da1ff4e64 (patch) | |
| tree | 72b730a1653aa4987e338042b7f5297f9bcf7071 /src/buffer.c | |
| parent | 9949231fb06aa4a2dfa536e9d5125a81424db3a7 (diff) | |
| download | emacs-cb8e2bfba7e712815203264a0c40bf2da1ff4e64.tar.gz emacs-cb8e2bfba7e712815203264a0c40bf2da1ff4e64.zip | |
Fix SAFE_ALLOCA to not exhaust the stack when in a loop.
Problem reported by Dmietry Antipov in thread leading to:
http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html
This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP;
the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS
remain unfixed.
* callproc.c (call_process): Save and restore sa_avail.
* lisp.h (USE_SAFE_ALLOCA): Define sa_avail.
(AVAIL_ALLOCA): New macro.
(SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP):
Use it, and check against sa_avail rather than MAX_ALLOCA.
Diffstat (limited to 'src/buffer.c')
0 files changed, 0 insertions, 0 deletions