From bff1462e9ea5e579aa3ffc4817e948b81d32ef96 Mon Sep 17 00:00:00 2001 From: cpq Date: Sun, 28 May 2023 17:06:47 +0100 Subject: [PATCH] Add config var size check --- examples/device-dashboard/net.c | 7 ++++++- examples/device-dashboard/net.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/device-dashboard/net.c b/examples/device-dashboard/net.c index a0aa1bf8..f38b5578 100644 --- a/examples/device-dashboard/net.c +++ b/examples/device-dashboard/net.c @@ -188,7 +188,12 @@ static void handle_settings_set(struct mg_connection *c, struct mg_str body) { settings.log_level = mg_json_get_long(body, "$.log_level", 0); settings.brightness = mg_json_get_long(body, "$.brightness", 0); char *s = mg_json_get_str(body, "$.device_name"); - if (s) free(settings.device_name), settings.device_name = s; + if (s && strlen(s) < MAX_DEVICE_NAME) { + free(settings.device_name); + settings.device_name = s; + } else { + free(s); + } // Save to the device flash s_settings = settings; diff --git a/examples/device-dashboard/net.h b/examples/device-dashboard/net.h index 164a8856..6c948a6b 100644 --- a/examples/device-dashboard/net.h +++ b/examples/device-dashboard/net.h @@ -12,4 +12,6 @@ #define HTTPS_URL "http://0.0.0.0:8443" #endif +#define MAX_DEVICE_NAME 40 + void web_init(struct mg_mgr *mgr);