aboutsummaryrefslogtreecommitdiffstats
path: root/exec
diff options
context:
space:
mode:
authorPo Lu2023-05-20 16:54:13 +0800
committerPo Lu2023-05-20 16:54:13 +0800
commitd86643a7863cef268b69d7925e0982bdb70ba672 (patch)
treef6f7edab475f13225d1691fcc58dd74e1915a6cd /exec
parent181453285c67783ebf8eb269dc19fdb0e563af62 (diff)
downloademacs-d86643a7863cef268b69d7925e0982bdb70ba672.tar.gz
emacs-d86643a7863cef268b69d7925e0982bdb70ba672.zip
Remove arbitrary process count limit
* exec/trace.c (handle_clone_prepare): (handle_clone): When !REENTRANT, use malloc to allocate tracees after running out of static ones.
Diffstat (limited to 'exec')
-rw-r--r--exec/trace.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/exec/trace.c b/exec/trace.c
index 974df1dd5e1..23db8ebcbc7 100644
--- a/exec/trace.c
+++ b/exec/trace.c
@@ -456,6 +456,12 @@ handle_clone_prepare (struct exec_tracee *parent)
456 tracee = &static_tracees[tracees]; 456 tracee = &static_tracees[tracees];
457 tracees++; 457 tracees++;
458 } 458 }
459#ifndef REENTRANT
460 /* Try to allocate a tracee using `malloc' if this library is
461 not being built to run inside a signal handler. */
462 else if ((tracee = malloc (sizeof *tracee)))
463 ;
464#endif /* REENTRANT */
459 else 465 else
460 return; 466 return;
461 467
@@ -506,6 +512,12 @@ handle_clone (struct exec_tracee *tracee, pid_t pid)
506 tracee = &static_tracees[tracees]; 512 tracee = &static_tracees[tracees];
507 tracees++; 513 tracees++;
508 } 514 }
515#ifndef REENTRANT
516 /* Try to allocate a tracee using `malloc' if this library is
517 not being built to run inside a signal handler. */
518 else if ((tracee = malloc (sizeof *tracee)))
519 ;
520#endif /* REENTRANT */
509 else 521 else
510 return 1; 522 return 1;
511 523