diff --git a/dmdynamicjson.c b/dmdynamicjson.c index f9e25f8f..5d98111c 100644 --- a/dmdynamicjson.c +++ b/dmdynamicjson.c @@ -97,7 +97,8 @@ static void generate_prefixobj_and_obj_full_obj(char *full_obj, char **prefix_ob { char *pch = NULL, *pchr = NULL, *tmp_obj = NULL; - char *str = dmstrdupjson(full_obj); + char *full_object = replace_str(full_obj, ".{i}.", "."); + char *str = dmstrdupjson(full_object); for (pch = strtok_r(str, ".", &pchr); pch != NULL; pch = strtok_r(NULL, ".", &pchr)) { if (pchr != NULL && *pchr != '\0') { if (*prefix_obj == NULL) { @@ -112,7 +113,8 @@ static void generate_prefixobj_and_obj_full_obj(char *full_obj, char **prefix_ob *obj = dmstrdupjson(pch); } } - if(str) dmfreejson(str); + dmfreejson(str); + dmfree(full_object); } static char *generate_obj_without_instance(char *full_obj, bool is_obj) diff --git a/test/files/etc/bbfdm/json/X_IOPSYS_EU_Dropbear.json b/test/files/etc/bbfdm/json/X_IOPSYS_EU_Dropbear.json index 4a2fb033..7c2a93ca 100644 --- a/test/files/etc/bbfdm/json/X_IOPSYS_EU_Dropbear.json +++ b/test/files/etc/bbfdm/json/X_IOPSYS_EU_Dropbear.json @@ -1,5 +1,5 @@ { - "Device.X_IOPSYS_EU_Dropbear.": { + "Device.X_IOPSYS_EU_Dropbear.{i}.": { "type": "object", "protocols": [ "cwmp", @@ -36,7 +36,7 @@ "option": { "name": "dropbearalias" }, - "path":"/etc/bbfdm", + "path":"/etc/bbfdm" } } ]