sd-hwdb: fix off_t vs. size_t confusion in cast
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 4 Mar 2019 14:42:58 +0000 (15:42 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 4 Mar 2019 14:42:58 +0000 (15:42 +0100)
> on 32bit, size_t is 32bit, but .st_size is off_t hence 64bit

src/libsystemd/sd-hwdb/sd-hwdb.c

index 64aaf01..d8c37c3 100644 (file)
@@ -333,7 +333,7 @@ _public_ int sd_hwdb_new(sd_hwdb **ret) {
 
         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)
+        if (hwdb->st.st_size < (off_t) offsetof(struct trie_header_f, strings_len) + 8)
                 return log_debug_errno(SYNTHETIC_ERRNO(EIO),
                                        "File %s is too short: %m", hwdb_bin_path);