summaryrefslogtreecommitdiff
path: root/src/rfkill
diff options
context:
space:
mode:
authorTopi Miettinen <toiwoton@gmail.com>2019-02-01 23:52:00 +0200
committerTopi Miettinen <toiwoton@gmail.com>2019-02-02 16:25:32 +0200
commita21760454db4b19e7299ead712fb895d8704b37d (patch)
tree2a24bf42e1983c4d81a17c29dca1e1477a2b4894 /src/rfkill
parentcbed254f9673256836554b0b6e16941747f925f8 (diff)
downloadsystemd-a21760454db4b19e7299ead712fb895d8704b37d.tar.gz
Detect file truncation earlier in a few places
Users of read_one_line_file() for APIVFS entries are ignored as they are assumed to never get truncated.
Diffstat (limited to 'src/rfkill')
-rw-r--r--src/rfkill/rfkill.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rfkill/rfkill.c b/src/rfkill/rfkill.c
index ac21dc064c..8a92a4de6e 100644
--- a/src/rfkill/rfkill.c
+++ b/src/rfkill/rfkill.c
@@ -147,8 +147,8 @@ static int load_state(Context *c, const struct rfkill_event *event) {
return r;
r = read_one_line_file(state_file, &value);
- if (r == -ENOENT) {
- /* No state file? Then save the current state */
+ if (IN_SET(r, -ENOENT, 0)) {
+ /* No state file or it's truncated? Then save the current state */
r = write_string_file(state_file, one_zero(event->soft), WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC);
if (r < 0)