Skip to content

Commit 64de800

Browse files
nealjackkartben
authored andcommitted
mgmt: hawkbit: use sizeof in server_addr length checks
Simplify length checks by using sizeof for the server_addr array. Signed-off-by: Neal Jackson <neal@blueirislabs.com>
1 parent d9be126 commit 64de800

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

subsys/mgmt/hawkbit/hawkbit.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,12 @@ static int hawkbit_settings_set(const char *name, size_t len, settings_read_cb r
285285

286286
#ifdef CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME
287287
if (settings_name_steq(name, "server_addr", &next) && !next) {
288-
if (len != sizeof(hb_cfg.server_addr)) {
288+
rc = read_cb(cb_arg, &hb_cfg.server_addr, MIN(len, sizeof(hb_cfg.server_addr)));
289+
if (strnlen(hb_cfg.server_addr, sizeof(hb_cfg.server_addr)) ==
290+
sizeof(hb_cfg.server_addr)) {
291+
memset(hb_cfg.server_addr, 0, sizeof(hb_cfg.server_addr));
289292
return -EINVAL;
290293
}
291-
292-
rc = read_cb(cb_arg, &hb_cfg.server_addr, sizeof(hb_cfg.server_addr));
293294
LOG_DBG("<%s> = %s", "hawkbit/server_addr", hb_cfg.server_addr);
294295
if (rc >= 0) {
295296
return 0;
@@ -358,7 +359,7 @@ static int hawkbit_settings_export(int (*cb)(const char *name, const void *value
358359
LOG_DBG("export hawkbit settings");
359360
(void)cb("hawkbit/action_id", &hb_cfg.action_id, sizeof(hb_cfg.action_id));
360361
#ifdef CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME
361-
(void)cb("hawkbit/server_addr", &hb_cfg.server_addr, sizeof(hb_cfg.server_addr));
362+
(void)cb("hawkbit/server_addr", &hb_cfg.server_addr, strlen(hb_cfg.server_addr) + 1);
362363
uint16_t hawkbit_port = atoi(hb_cfg.server_port);
363364
(void)cb("hawkbit/server_port", &hawkbit_port, sizeof(hawkbit_port));
364365
#ifndef CONFIG_HAWKBIT_DDI_NO_SECURITY

0 commit comments

Comments
 (0)