grub2/0198-grub-mount-work-around-bad-integer-comparison.patch
Leo Sandoval ab7ed2db6e Rebased to release grub2-2.12 for fedora-41
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
2024-08-05 19:08:59 -06:00

50 lines
1.5 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 8 Jan 2024 15:54:31 -0500
Subject: [PATCH] grub-mount: work around bad integer comparison.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
gcc says:
util/grub-mount.c: In function fuse_read:
util/grub-mount.c:273:11: error: comparison of integer expressions of different signedness: off_t {aka long int} and grub_off_t {aka long unsigned int} [-Werror=sign-compare]
273 | if (off > file->size)
| ^
This is happening because grub_off_t is unsigned but the system's off_t is
signed.
That's too much work to fix today, so this patch works around it with
tests and typecasting.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
util/grub-mount.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/util/grub-mount.c b/util/grub-mount.c
index bf4c8b891be..d369e21666e 100644
--- a/util/grub-mount.c
+++ b/util/grub-mount.c
@@ -269,11 +269,17 @@ fuse_read (const char *path, char *buf, size_t sz, off_t off,
{
grub_file_t file = files[fi->fh];
grub_ssize_t size;
+ grub_off_t offset;
- if (off > file->size)
+ if (off < 0)
return -EINVAL;
- file->offset = off;
+ if ((grub_off_t)off > file->size)
+ return -EINVAL;
+
+ offset = (grub_off_t)off;
+
+ file->offset = offset;
size = grub_file_read (file, buf, sz);
if (size < 0)