SMOLNET PORTAL home about changes
iHandle errors in fscanf and fread. - energy - measure energy usage	Err	bitreich.org	70
hgit clone git://bitreich.org/energy  git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/energy	URL:git://bitreich.org/energy  git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/energy	bitreich.org	70
1Log	/scm/energy/log.gph	bitreich.org	70
1Files	/scm/energy/files.gph	bitreich.org	70
1Refs	/scm/energy/refs.gph	bitreich.org	70
1Tags	/scm/energy/tag	bitreich.org	70
1README	/scm/energy/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/energy/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 3b9da8cb1c2fcacd4570f25d02194124e526caa2	/scm/energy/commit/3b9da8cb1c2fcacd4570f25d02194124e526caa2.gph	bitreich.org	70
1parent 94c96ddd16d2012cdaaef649903e8fcc663a9296	/scm/energy/commit/94c96ddd16d2012cdaaef649903e8fcc663a9296.gph	bitreich.org	70
hAuthor: Christoph Lohmann <20h@r-36.net>	URL:mailto:20h@r-36.net	bitreich.org	70
iDate:   Thu, 24 Aug 2023 15:24:43 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iHandle errors in fscanf and fread.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M energy.c                            |      10 ++++++++--	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 8 insertions(+), 2 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/energy.c b/energy.c	/scm/energy/file/energy.c.gph	bitreich.org	70
i@@ -55,7 +55,10 @@ long long_from_file(const char *fname) {	Err	bitreich.org	70
i     return -1;	Err	bitreich.org	70
i   } else {	Err	bitreich.org	70
i     long x;	Err	bitreich.org	70
i-    fscanf(f, "%ld", &x);	Err	bitreich.org	70
i+    if (fscanf(f, "%ld", &x) < 0) {	Err	bitreich.org	70
i+       fprintf(stderr, "%s: %s\n", fname, strerror(errno));	Err	bitreich.org	70
i+       return -1;	Err	bitreich.org	70
i+    }	Err	bitreich.org	70
i     fclose(f);	Err	bitreich.org	70
i     return x;	Err	bitreich.org	70
i   }	Err	bitreich.org	70
i@@ -118,7 +121,10 @@ void sensor_battery(void) {	Err	bitreich.org	70
i     }	Err	bitreich.org	70
i   } else {	Err	bitreich.org	70
i     char buf[128];	Err	bitreich.org	70
i-    fread(buf, 1, sizeof(buf), f);	Err	bitreich.org	70
i+    if (fread(buf, 1, sizeof(buf), f) < 1) {	Err	bitreich.org	70
i+       fprintf(stderr, "%s: %s\n", battery_status, strerror(errno));	Err	bitreich.org	70
i+       return;	Err	bitreich.org	70
i+    }	Err	bitreich.org	70
i     const char discharging[] = "Discharging";	Err	bitreich.org	70
i     // Measurement of battery discharge is only meaningful if the	Err	bitreich.org	70
i     // battery is actually discharging.	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/energy/commit/3b9da8cb1c2fcac...
Content-Typetext/plain; charset=utf-8