diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-03-01 18:14:32 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-03-04 14:16:39 +0100 |
commit | af407110505d7394b7e2b45566affa1fd0fed00b (patch) | |
tree | 8f5279f78c62168534ca5158ae0a2c9105b258fe /src | |
parent | 468905cac890ad11ad8300ddc5073537ceca3607 (diff) | |
download | systemd-af407110505d7394b7e2b45566affa1fd0fed00b.tar.gz |
sd-hwdb: some minor logging and style updates
Diffstat (limited to 'src')
-rw-r--r-- | src/libsystemd/sd-hwdb/sd-hwdb.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/libsystemd/sd-hwdb/sd-hwdb.c b/src/libsystemd/sd-hwdb/sd-hwdb.c index 2e68a1a2fd..64aaf01454 100644 --- a/src/libsystemd/sd-hwdb/sd-hwdb.c +++ b/src/libsystemd/sd-hwdb/sd-hwdb.c @@ -319,23 +319,23 @@ _public_ int sd_hwdb_new(sd_hwdb **ret) { /* find hwdb.bin in hwdb_bin_paths */ NULSTR_FOREACH(hwdb_bin_path, hwdb_bin_paths) { + log_debug("Trying to open \"%s\"...", hwdb_bin_path); hwdb->f = fopen(hwdb_bin_path, "re"); if (hwdb->f) break; - else if (errno == ENOENT) - continue; - else + if (errno != ENOENT) return log_debug_errno(errno, "Failed to open %s: %m", hwdb_bin_path); } - if (!hwdb->f) { - log_debug("hwdb.bin does not exist, please run 'systemd-hwdb update'"); - return -ENOENT; - } + if (!hwdb->f) + return log_debug_errno(SYNTHETIC_ERRNO(ENOENT), + "hwdb.bin does not exist, please run 'systemd-hwdb update'"); - if (fstat(fileno(hwdb->f), &hwdb->st) < 0 || - (size_t) hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) - return log_debug_errno(errno, "Failed to read %s: %m", hwdb_bin_path); + if (fstat(fileno(hwdb->f), &hwdb->st) < 0) + return log_debug_errno(errno, "Failed to stat %s: %m", hwdb_bin_path); + if ((size_t) hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) + return log_debug_errno(SYNTHETIC_ERRNO(EIO), + "File %s is too short: %m", hwdb_bin_path); hwdb->map = mmap(0, hwdb->st.st_size, PROT_READ, MAP_SHARED, fileno(hwdb->f), 0); if (hwdb->map == MAP_FAILED) @@ -382,12 +382,11 @@ bool hwdb_validate(sd_hwdb *hwdb) { return false; /* if hwdb.bin doesn't exist anywhere, we need to update */ - NULSTR_FOREACH(p, hwdb_bin_paths) { + NULSTR_FOREACH(p, hwdb_bin_paths) if (stat(p, &st) >= 0) { found = true; break; } - } if (!found) return true; |