From 5f49a5c1fe8558fb6557bc6472e397bd57f5543c Mon Sep 17 00:00:00 2001 From: rasmus Date: Thu, 26 Mar 2026 17:01:41 +0100 Subject: [PATCH] added NULL check to webserver.c --- src/webserver.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/webserver.c b/src/webserver.c index 81d7c1f..22b7759 100644 --- a/src/webserver.c +++ b/src/webserver.c @@ -18,12 +18,25 @@ static char post_buffer[400]; static uint16_t post_buffer_len = 0; void parse_post(const char *key, char delimiter, char *dest, int max_len) { - char *pos = strstr(post_buffer, key) + strlen(key); - char *end = strchr(pos, delimiter); + char *start = strstr(post_buffer, key); + if (!start) { + dest[0] = '\0'; + return; + } + + char *pos = start + strlen(key); + char *end = (delimiter == '\0') ? (post_buffer + strlen(post_buffer)) + : strchr(pos, delimiter); + + if (!end) { + end = post_buffer + strlen(post_buffer); + } + int len = end - pos; if (len > max_len) { len = max_len; } + strncpy(dest, pos, len); dest[len] = '\0'; }