From a3c523fe2be39d16e75fe578d17c0c68a1ff4cee Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 1 Jun 2016 10:18:19 +0200 Subject: [PATCH 1/1] fix the fix: compute the real buffer size --- src/instr/jedule/jedule_output.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/instr/jedule/jedule_output.cpp b/src/instr/jedule/jedule_output.cpp index bde765fa4c..39874037a2 100644 --- a/src/instr/jedule/jedule_output.cpp +++ b/src/instr/jedule/jedule_output.cpp @@ -52,7 +52,7 @@ static void get_hierarchy_list(xbt_dynar_t hier_list, jed_simgrid_container_t co } } -static void get_hierarchy_string(jed_simgrid_container_t container, char *outbuf) { +static void get_hierarchy_string(jed_simgrid_container_t container, char *outbuf, int bufsize) { char buf[1024]; xbt_dynar_t hier_list; unsigned int iter; @@ -71,7 +71,7 @@ static void get_hierarchy_string(jed_simgrid_container_t container, char *outbuf } else { snprintf(buf, 1024, "%d", number); } - strncat(outbuf, buf, strlen(buf)); + strncat(outbuf, buf, bufsize-strlen(outbuf)-1); } xbt_dynar_free(&hier_list); @@ -92,12 +92,12 @@ static void print_resources(jed_simgrid_container_t resource_parent) { unsigned int res_nb; unsigned int i; char *res_name; - char resid[1024]; + char resid[1024]; xbt_assert( resource_parent->resource_list != NULL ); res_nb = xbt_dynar_length(resource_parent->resource_list); - get_hierarchy_string(resource_parent, resid); + get_hierarchy_string(resource_parent, resid, 1024); fprintf(jed_file, " resource_list, i, res_name) { @@ -153,7 +153,7 @@ static void print_event(jed_event_t event) { int end = subset->start_idx + subset->nres - 1; char resid[1024]; - get_hierarchy_string(subset->parent, resid); + get_hierarchy_string(subset->parent, resid, 1024); fprintf(jed_file, "