bootctl: same entry path check case-insensitive
authorzsien <i@zsien.cn>
Mon, 10 May 2021 07:42:54 +0000 (15:42 +0800)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 15 May 2021 18:28:35 +0000 (20:28 +0200)
Some motherboards convert the path to uppercase under certain circumstances
(e.g. after booting into the Boot Menu in the ASUS ROG STRIX B350-F GAMING).

(cherry picked from commit 5c2e5957678462d871c5c2ea5261becec5f8f80f)
(cherry picked from commit 379679f807072b4d554711bc61b769d72ecc98d6)
(cherry picked from commit 6647cff7766faed5cb57373abc7439b048304638)

src/boot/bootctl.c

index 1a085ffa66ec359f49f8c950e0001f1cab32c207..60594f14c4ee7472a27c98ba61fe1b6f8f558703 100644 (file)
@@ -669,7 +669,11 @@ static bool same_entry(uint16_t id, sd_id128_t uuid, const char *path) {
                 return false;
         if (!sd_id128_equal(uuid, ouuid))
                 return false;
-        if (!streq_ptr(path, opath))
+
+        /* Some motherboards convert the path to uppercase under certain circumstances
+         * (e.g. after booting into the Boot Menu in the ASUS ROG STRIX B350-F GAMING),
+         * so use case-insensitive checking */
+        if (strcasecmp_ptr(path, opath) != 0)
                 return false;
 
         return true;