From 5f957a1f2ed5e82fffccf28221a2e029412dc9a6 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <matthieu.schaller@durham.ac.uk>
Date: Wed, 17 Jul 2019 10:10:48 +0100
Subject: [PATCH] Fixes a bunch of warnings in some calls to sprintf() taht
 trigger (false-positives?) warnings with GCC 9.1.0

---
 src/common_io.c   | 4 ++--
 src/parallel_io.c | 4 ++--
 src/serial_io.c   | 2 +-
 src/single_io.c   | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/common_io.c b/src/common_io.c
index 140dfc1459..677e029597 100644
--- a/src/common_io.c
+++ b/src/common_io.c
@@ -1805,8 +1805,8 @@ void io_check_output_fields(const struct swift_params* params,
       /* loop over each possible output field */
       for (int field_id = 0; field_id < num_fields; field_id++) {
         char field_name[PARSER_MAX_LINE_SIZE];
-        sprintf(field_name, "SelectOutput:%s_%s", list[field_id].name,
-                part_type_names[ptype]);
+        sprintf(field_name, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, 
+		list[field_id].name, part_type_names[ptype]);
 
         if (strcmp(param_name, field_name) == 0) {
           found = 1;
diff --git a/src/parallel_io.c b/src/parallel_io.c
index db1fbe2426..b90a3848d9 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -1247,7 +1247,7 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6],
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);
 
@@ -1716,7 +1716,7 @@ void write_output_parallel(struct engine* e, const char* baseName,
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);
 
diff --git a/src/serial_io.c b/src/serial_io.c
index c05c69e1e8..d0858766c6 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -1359,7 +1359,7 @@ void write_output_serial(struct engine* e, const char* baseName,
 
           /* Did the user cancel this field? */
           char field[PARSER_MAX_LINE_SIZE];
-          sprintf(field, "SelectOutput:%s_%s", list[i].name,
+          sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
                   part_type_names[ptype]);
           int should_write = parser_get_opt_param_int(params, field, 1);
 
diff --git a/src/single_io.c b/src/single_io.c
index 7a7856d29c..0a5d20236d 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -1151,7 +1151,7 @@ void write_output_single(struct engine* e, const char* baseName,
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);
 
-- 
GitLab