util: get rid of json_array_append

This function is causing a memleak because it is necessary to clean
up after usage.

This fixes at least:

37 (32 direct, 5 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 394
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x66D0C7B: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.7.0)
   by 0x943584: LiveDeviceIfaceList (util-device.c:264)
   by 0x910889: UnixCommandExecute (unix-manager.c:486)
   by 0x910D7E: UnixCommandRun (unix-manager.c:545)
   by 0x911193: UnixMain (unix-manager.c:593)
   by 0x913CC7: UnixManager (unix-manager.c:961)
   by 0x907753: TmThreadsManagement (tm-threads.c:600)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)
pull/1910/head
Eric Leblond 10 years ago
parent cc942b4fb8
commit 606ac17c57

@ -261,7 +261,7 @@ TmEcode LiveDeviceIfaceList(json_t *cmd, json_t *answer, void *data)
return TM_ECODE_FAILED;
}
TAILQ_FOREACH(pd, &live_devices, next) {
json_array_append(jarray, json_string(pd->dev));
json_array_append_new(jarray, json_string(pd->dev));
i++;
}

@ -334,7 +334,7 @@ static void DumpJson(FILE *fp, SCProfileSummary *summary, uint32_t count, uint64
double percent = (long double)summary[i].ticks /
(long double)total_ticks * 100;
json_object_set_new(jsm, "percent", json_integer(percent));
json_array_append(jsa, jsm);
json_array_append_new(jsa, jsm);
}
}
json_object_set_new(js, "rules", jsa);

Loading…
Cancel
Save