From 17db992bc5493cc1e7175a7d7c2dd4ca031b00cf Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Wed, 7 Feb 2024 14:34:34 +0100 Subject: check max services This needs to be handled more gracefully of course. --- nitro.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nitro.c b/nitro.c index bdca361..31e4186 100644 --- a/nitro.c +++ b/nitro.c @@ -77,6 +77,9 @@ enum process_events { // EVNT_DIED, health check failed }; +/* max fd usage: 256 services with 256 loggers = 512 fd for logpipes + const. */ +#define MAXSV 512 + struct service { char name[64]; deadline startstop; @@ -90,7 +93,7 @@ struct service { enum process_state state; char seen; char islog; -} services[512]; +} services[MAXSV]; int max_service = 0; int controlsock; @@ -818,6 +821,8 @@ add_service(const char *name) if (i == max_service) { max_service++; + if (max_service >= MAXSV) + assert(!"out of services, nyi"); strcpy(services[i].name, name); services[i].pid = 0; -- cgit 1.4.1