tUse snprintf instead of sprintf for security reasons - cngf-pf - continuum model for granular flows with pore-pressure dynamics (renamed from 1d_fd_simple_shear)
(HTM) git clone git://src.adamsgaard.dk/cngf-pf
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 05b6c6a8eb96032d53f60ae53158a3870dc7cc5d
(DIR) parent 374445d8f064c5aea4703a6f957795bea7425c95
(HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 26 Aug 2019 10:32:26 +0200
Use snprintf instead of sprintf for security reasons
Diffstat:
M main.c | 2 +-
M parameter_defaults.h | 2 +-
M simulation.c | 7 ++++---
3 files changed, 6 insertions(+), 5 deletions(-)
---
(DIR) diff --git a/main.c b/main.c
t@@ -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);
(DIR) diff --git a/parameter_defaults.h b/parameter_defaults.h
t@@ -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;
(DIR) diff --git a/simulation.c b/simulation.c
t@@ -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;
}
t@@ -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)