From f7d93dca4ba67c8c522428fc4cf5ed551fa9920b Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 10 Jan 2024 15:18:01 -0500 Subject: Paranoia for config file: make sure we never load/save bad FP values. --- config.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'config.c') diff --git a/config.c b/config.c index 2e644b5..dbf7a64 100644 --- a/config.c +++ b/config.c @@ -40,6 +40,12 @@ struct hcalc_config { char *home_dir = NULL; char config_path[MAX_HOME]; /* ludicrous size */ +void validate_numbers(void) { + if(!number_is_ok(value)) value = 0; + if(!number_is_ok(saved)) saved = 0; + if(!number_is_ok(stored)) stored = 0; +} + size_t filesize(FILE *f) { struct stat st; @@ -121,6 +127,8 @@ void load_config(void) { winsize = conf.winsize; base = conf.base; quiet = conf.quiet; + + validate_numbers(); } void save_config(void) { @@ -142,6 +150,8 @@ void save_config(void) { return; } + validate_numbers(); + memcpy(conf.signature, SIGNATURE, SIGLEN); conf.doublesize = sizeof(double); conf.value = value; -- cgit v1.2.3