From: Daniel Kiper <daniel.kiper@oracle.com>
To: grub-devel@gnu.org
Cc: development@efficientek.com, rharwood@redhat.com
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 [thread overview]
Message-ID: <20220310233600.25910-4-daniel.kiper@oracle.com> (raw)
In-Reply-To: <20220310233600.25910-1-daniel.kiper@oracle.com>
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
next prev parent reply other threads:[~2022-03-10 23:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-10 23:35 [PATCH 0/6] Various fixes and cleanups Daniel Kiper
2022-03-10 23:35 ` [PATCH 1/6] osdep/windows/platform: Disable gcc9 -Waddress-of-packed-member Daniel Kiper
2022-03-11 2:24 ` Vladimir 'phcoder' Serbinenko
2022-03-10 23:35 ` [PATCH 2/6] loader/i386/bsd: Initialize ptr variable in grub_bsd_add_meta() Daniel Kiper
2022-03-18 7:57 ` Paul Menzel
2022-03-18 19:21 ` Glenn Washburn
2022-03-24 15:12 ` Daniel Kiper
2022-03-10 23:35 ` Daniel Kiper [this message]
2022-03-11 17:09 ` [PATCH 3/6] commands/i386/pc/sendkey: Fix "writing 1 byte into a region of size 0" build error Glenn Washburn
2022-03-11 17:23 ` Toomas Soome
2022-03-11 21:37 ` Daniel Kiper
2022-03-11 18:41 ` Vladimir 'phcoder' Serbinenko
2022-03-14 4:16 ` Michael Chang
2022-03-15 13:43 ` Daniel Kiper
2022-03-10 23:35 ` [PATCH 4/6] conf/i386-cygwin-img-ld: Do not discard .data and .edata sections Daniel Kiper
2022-03-10 23:35 ` [PATCH 5/6] configure: Drop ${grub_coredir} unneeded references Daniel Kiper
2022-03-10 23:36 ` [PATCH 6/6] INSTALL: Add more cross-compiling Debian packages Daniel Kiper
2022-03-17 6:02 ` Paul Menzel
2022-03-17 22:07 ` Daniel Kiper
2022-03-11 18:51 ` [PATCH 0/6] Various fixes and cleanups Robbie Harwood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220310233600.25910-4-daniel.kiper@oracle.com \
--to=daniel.kiper@oracle.com \
--cc=development@efficientek.com \
--cc=grub-devel@gnu.org \
--cc=rharwood@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.