From 82b0f273e1cf65051b6c50301c5073dce56c1149 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Thu, 7 Sep 2023 14:16:49 +0200 Subject: [PATCH] core: parser - set via->params.len when body is finished --- src/core/parser/parse_via.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/core/parser/parse_via.c b/src/core/parser/parse_via.c index 921911f1d17..a978d1aaf2e 100644 --- a/src/core/parser/parse_via.c +++ b/src/core/parser/parse_via.c @@ -2692,6 +2692,17 @@ char *parse_via( goto error; } } + if(vb->params.s != NULL && vb->params.len == 0 && vb->last_param != NULL) { + if(vb->last_param->name.len > 0) { + if(vb->last_param->value.len > 0) { + vb->params.len = vb->last_param->value.s + vb->last_param->value.len + - vb->params.s; + } else { + vb->params.len = vb->last_param->name.s + vb->last_param->name.len + - vb->params.s; + } + } + } return tmp; nextvia: DBG("parsing via: next via\n"); @@ -2706,6 +2717,18 @@ char *parse_via( goto error; } } + if(vb->params.s != NULL && vb->params.len == 0 && vb->last_param != NULL) { + if(vb->last_param->name.len > 0) { + if(vb->last_param->value.len > 0) { + vb->params.len = vb->last_param->value.s + vb->last_param->value.len + - vb->params.s; + } else { + vb->params.len = vb->last_param->name.s + vb->last_param->name.len + - vb->params.s; + } + } + } + vb->next = pkg_malloc(sizeof(struct via_body)); if(vb->next == 0) { PKG_MEM_ERROR;