@@ -285,11 +285,12 @@ static int hawkbit_settings_set(const char *name, size_t len, settings_read_cb r
285
285
286
286
#ifdef CONFIG_HAWKBIT_SET_SETTINGS_RUNTIME
287
287
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 ));
289
292
return - EINVAL ;
290
293
}
291
-
292
- rc = read_cb (cb_arg , & hb_cfg .server_addr , sizeof (hb_cfg .server_addr ));
293
294
LOG_DBG ("<%s> = %s" , "hawkbit/server_addr" , hb_cfg .server_addr );
294
295
if (rc >= 0 ) {
295
296
return 0 ;
@@ -358,7 +359,7 @@ static int hawkbit_settings_export(int (*cb)(const char *name, const void *value
358
359
LOG_DBG ("export hawkbit settings" );
359
360
(void )cb ("hawkbit/action_id" , & hb_cfg .action_id , sizeof (hb_cfg .action_id ));
360
361
#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 );
362
363
uint16_t hawkbit_port = atoi (hb_cfg .server_port );
363
364
(void )cb ("hawkbit/server_port" , & hawkbit_port , sizeof (hawkbit_port ));
364
365
#ifndef CONFIG_HAWKBIT_DDI_NO_SECURITY
0 commit comments