commit 05b6c6a8eb96032d53f60ae53158a3870dc7cc5d
parent 374445d8f064c5aea4703a6f957795bea7425c95
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Mon, 26 Aug 2019 10:32:26 +0200
Use snprintf instead of sprintf for security reasons
Diffstat:
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/main.c b/main.c
@@ -268,7 +268,7 @@ main(int argc, char* argv[])
 			        "error: more than one simulation name specified\n");
 			return 1;
 		}
-		sprintf(sim.name, "%s", argv[i]);
+		snprintf(sim.name, sizeof(sim.name), "%s", argv[i]);
 	}
 
 	prepare_arrays(&sim);
diff --git a/parameter_defaults.h b/parameter_defaults.h
@@ -13,7 +13,7 @@ struct simulation init_sim(void)
 {
 	struct simulation sim;
 
-	sprintf(sim.name, DEFAULT_SIMULATION_NAME);
+	snprintf(sim.name, sizeof(sim.name), DEFAULT_SIMULATION_NAME);
 
 	sim.G = 9.81;
 
diff --git a/simulation.c b/simulation.c
@@ -63,12 +63,12 @@ check_float(const char name[], const double value, int* return_status)
 #endif
 	if (isnan(value)) {
 		char message[100];
-		sprintf(message, "%s is NaN", name);
+		snprintf(message, sizeof(message), "%s is NaN", name);
 		warn_parameter_value(message, value, return_status);
 		*return_status = 1;
 	} else if (isinf(value)) {
 		char message[100];
-		sprintf(message, "%s is infinite", name);
+		snprintf(message, sizeof(message), "%s is infinite", name);
 		warn_parameter_value(message, value, return_status);
 		*return_status = 1;
 	}
@@ -471,7 +471,8 @@ write_output_file(struct simulation* sim, const int normalize)
 	char outfile[200];
 	FILE *fp;
 
-	sprintf(outfile, "%s.output%05d.txt", sim->name, sim->n_file++);
+	snprintf(outfile, sizeof(outfile), "%s.output%05d.txt",
+	         sim->name, sim->n_file++);
 
 	fp = fopen(outfile, "w");
 	if (sim->fluid)