Merge pull request #11617 from topimiettinen/backlight-handle-zero-file-load

backlight: handle loading truncated file
This commit is contained in:
Lennart Poettering 2019-02-15 11:32:58 +01:00 committed by GitHub
commit bd0a4a3da8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 10 deletions

View File

@ -379,7 +379,7 @@ static int run(int argc, char *argv[]) {
clamp = shall_clamp(device);
r = read_one_line_file(saved, &value);
if (r == -ENOENT) {
if (IN_SET(r, -ENOENT, 0)) {
const char *curval;
/* Fallback to clamping current brightness or exit early if

View File

@ -212,7 +212,6 @@ int write_string_filef(
int read_one_line_file(const char *fn, char **line) {
_cleanup_fclose_ FILE *f = NULL;
int r;
assert(fn);
assert(line);
@ -223,8 +222,7 @@ int read_one_line_file(const char *fn, char **line) {
(void) __fsetlocking(f, FSETLOCKING_BYCALLER);
r = read_line(f, LONG_LINE_MAX, line);
return r < 0 ? r : 0;
return read_line(f, LONG_LINE_MAX, line);
}
int verify_file(const char *fn, const char *blob, bool accept_extra_nl) {

View File

@ -202,7 +202,7 @@ static int detect_vm_xen_dom0(void) {
r = read_one_line_file(PATH_FEATURES, &domcap);
if (r < 0 && r != -ENOENT)
return r;
if (r == 0) {
if (r >= 0) {
unsigned long features;
/* Here, we need to use sscanf() instead of safe_atoul()
@ -469,11 +469,11 @@ int detect_container(void) {
/* Otherwise, PID 1 might have dropped this information into a file in /run. This is better than accessing
* /proc/1/environ, since we don't need CAP_SYS_PTRACE for that. */
r = read_one_line_file("/run/systemd/container", &m);
if (r >= 0) {
if (r > 0) {
e = m;
goto translate_name;
}
if (r != -ENOENT)
if (!IN_SET(r, -ENOENT, 0))
return log_debug_errno(r, "Failed to read /run/systemd/container: %m");
/* Fallback for cases where PID 1 was not systemd (for example, cases where init=/bin/sh is used. */

View File

@ -707,7 +707,7 @@ int dynamic_user_lookup_uid(Manager *m, uid_t uid, char **ret) {
xsprintf(lock_path, "/run/systemd/dynamic-uid/" UID_FMT, uid);
r = read_one_line_file(lock_path, &user);
if (r == -ENOENT)
if (IN_SET(r, -ENOENT, 0))
return -ESRCH;
if (r < 0)
return r;

View File

@ -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)