From 6cd595a81619f6abea75d615f11f0eab65b75e3a Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 29 Sep 2025 11:31:50 +0200 Subject: [PATCH] - Fix modstack_call_init to use the original string when it has changed, to call modstack_config with. And skip the changed name in the string correctly. Thanks to Jan Komissar. --- doc/Changelog | 3 +++ services/modstack.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index f906c9fc6..261708b85 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,8 @@ 29 September 2025: Wouter - Rebuild configure script from its sources. + - Fix modstack_call_init to use the original string when it has + changed, to call modstack_config with. And skip the changed name + in the string correctly. Thanks to Jan Komissar. 26 September 2025: Yorgos - Test for nonstring attribute in configure and add diff --git a/services/modstack.c b/services/modstack.c index 2bc79c4ad..f5913dc38 100644 --- a/services/modstack.c +++ b/services/modstack.c @@ -262,6 +262,7 @@ int modstack_call_init(struct module_stack* stack, const char* module_conf, struct module_env* env) { + const char* orig_module_conf = module_conf; int i, changed = 0; env->need_to_validate = 0; /* set by module init below */ for(i=0; inum; i++) { @@ -276,11 +277,13 @@ modstack_call_init(struct module_stack* stack, const char* module_conf, changed = 1; } } - module_conf += strlen(stack->mod[i]->name); + /* Skip this module name in module_conf. */ + while(*module_conf && !isspace((unsigned char)*module_conf)) + module_conf++; } if(changed) { modstack_free(stack); - if(!modstack_config(stack, module_conf)) { + if(!modstack_config(stack, orig_module_conf)) { return 0; } } -- 2.47.3