]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
osdep/devmapper/getroot: Fix build error on 32-bit host
authorMichael Chang <mchang@suse.com>
Wed, 1 Mar 2023 09:23:08 +0000 (17:23 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 7 Mar 2023 14:47:42 +0000 (15:47 +0100)
The gcc build has failed for 32-bit host (e.g. i386-emu and arm-emu)
due to mismatch between format specifier and data type.

../grub-core/osdep/devmapper/getroot.c: In function
'grub_util_pull_devmapper':

../grub-core/osdep/devmapper/getroot.c:265:75: error: format '%lu'
expects argument of type 'long unsigned int', but argument 2 has type
'int' [-Werror=format=]

../grub-core/osdep/devmapper/getroot.c:276:80: error: format '%lu'
expects argument of type 'long unsigned int', but argument 2 has type
'int' [-Werror=format=]

This patch fixes the problem by casting the type of calculated offset to
grub_size_t and use platform PRIuGRUB_SIZE as format specifier.

Signed-off-by: Michael Chang <mchang@suse.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/osdep/devmapper/getroot.c

index cc3f7daff8220ca0a19251dead19b5b5598de8e3..3b37336bc9628292ac5c97afccfb299c31edf071 100644 (file)
@@ -262,7 +262,7 @@ grub_util_pull_devmapper (const char *os_dev)
                                  params);
               cipher = grub_strndup (c, seek_head - c);
               if (cipher == NULL)
-                grub_util_error (_("could not strndup cipher of length `%lu'"), seek_head - c);
+                grub_util_error (_("could not strndup cipher of length `%" PRIuGRUB_SIZE "'"), (grub_size_t) (seek_head - c));
               remaining -= seek_head - c + 1;
               c = seek_head + 1;
 
@@ -273,7 +273,7 @@ grub_util_pull_devmapper (const char *os_dev)
                                  params);
               cipher_mode = grub_strndup (c, seek_head - c);
               if (cipher_mode == NULL)
-                grub_util_error (_("could not strndup cipher_mode of length `%lu'"), seek_head - c);
+                grub_util_error (_("could not strndup cipher_mode of length `%" PRIuGRUB_SIZE "'"), (grub_size_t) (seek_head - c));
 
               remaining -= seek_head - c + 1;
               c = seek_head + 1;