Handle errors in fscanf and fread. - energy - measure energy usage HTML git clone git://bitreich.org/energy git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/energy DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit 3b9da8cb1c2fcacd4570f25d02194124e526caa2 DIR parent 94c96ddd16d2012cdaaef649903e8fcc663a9296 HTML Author: Christoph Lohmann <20h@r-36.net> Date: Thu, 24 Aug 2023 15:24:43 +0200 Handle errors in fscanf and fread. Diffstat: M energy.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) --- DIR diff --git a/energy.c b/energy.c @@ -55,7 +55,10 @@ long long_from_file(const char *fname) { return -1; } else { long x; - fscanf(f, "%ld", &x); + if (fscanf(f, "%ld", &x) < 0) { + fprintf(stderr, "%s: %s\n", fname, strerror(errno)); + return -1; + } fclose(f); return x; } @@ -118,7 +121,10 @@ void sensor_battery(void) { } } else { char buf[128]; - fread(buf, 1, sizeof(buf), f); + if (fread(buf, 1, sizeof(buf), f) < 1) { + fprintf(stderr, "%s: %s\n", battery_status, strerror(errno)); + return; + } const char discharging[] = "Discharging"; // Measurement of battery discharge is only meaningful if the // battery is actually discharging.