sd-hwdb: some minor logging and style updates
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 1 Mar 2019 17:14:32 +0000 (18:14 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 4 Mar 2019 13:16:39 +0000 (14:16 +0100)
src/libsystemd/sd-hwdb/sd-hwdb.c

index 2e68a1a..64aaf01 100644 (file)
@@ -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;