[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/6] commands/i386/pc/sendkey: Fix "writing 1 byte into a region
From: |
Daniel Kiper |
Subject: |
[PATCH 3/6] commands/i386/pc/sendkey: Fix "writing 1 byte into a region of size 0" build error |
Date: |
Fri, 11 Mar 2022 00:35:57 +0100 |
Latest GCC may complain in that way:
commands/i386/pc/sendkey.c: In function ‘grub_sendkey_postboot’:
commands/i386/pc/sendkey.c:223:21: error: writing 1 byte into a region of
size 0 [-Werror=stringop-overflow=]
223 | *((char *) 0x41a) = 0x1e;
| ~~~~~~~~~~~~~~~~~~^~~~~~
The volatile keyword addition helps and additionally assures us the
compiler will not optimize out fixed assignments.
Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
---
grub-core/commands/i386/pc/sendkey.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/grub-core/commands/i386/pc/sendkey.c
b/grub-core/commands/i386/pc/sendkey.c
index 26d9acd3d..ab4bca9e9 100644
--- a/grub-core/commands/i386/pc/sendkey.c
+++ b/grub-core/commands/i386/pc/sendkey.c
@@ -220,8 +220,8 @@ grub_sendkey_postboot (void)
*flags = oldflags;
- *((char *) 0x41a) = 0x1e;
- *((char *) 0x41c) = 0x1e;
+ *((volatile char *) 0x41a) = 0x1e;
+ *((volatile char *) 0x41c) = 0x1e;
return GRUB_ERR_NONE;
}
@@ -236,8 +236,8 @@ grub_sendkey_preboot (int noret __attribute__ ((unused)))
oldflags = *flags;
/* Set the sendkey. */
- *((char *) 0x41a) = 0x1e;
- *((char *) 0x41c) = keylen + 0x1e;
+ *((volatile char *) 0x41a) = 0x1e;
+ *((volatile char *) 0x41c) = keylen + 0x1e;
grub_memcpy ((char *) 0x41e, sendkey, 0x20);
/* Transform "any ctrl" to "right ctrl" flag. */
--
2.11.0