From 3adfa89cfce8b574db01853d5ea00eca49b002bd Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Tue, 25 Jul 2023 15:18:02 +0200 Subject: [PATCH] Prevent crash when number of parameter dependencies increases beyond limit. Raise the limit from 100 to 200. --- src/frontend/inpcom.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index a4b157de3..1726feed6 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -66,6 +66,8 @@ Author: 1985 Wayne A. Christopher #define NPARAMS 10000 #define FCN_PARAMS 1000 +#define DEPENDSON 200 + #define VALIDCHARS "!$%_#?@.[]&" static struct library { @@ -4745,7 +4747,7 @@ struct dependency { int skip; char *param_name; char *param_str; - char *depends_on[100]; + char *depends_on[DEPENDSON]; struct card *card; }; @@ -5055,6 +5057,11 @@ static void inp_sort_params(struct card *param_cards, for (ind = 0; deps[j].depends_on[ind]; ind++) ; deps[j].depends_on[ind++] = param; + if (ind == DEPENDSON) { + fprintf(stderr, "Error in netlist: Too many parameter dependencies (> %d)\n", ind); + fprintf(stderr, " Please check your netlist.\n"); + controlled_exit(EXIT_BAD); + } deps[j].depends_on[ind] = NULL; } }