git: ec58dba0ed80 - stable/15 - mkimg: Const correctness for C23
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 26 Aug 2026 10:12:38 UTC
The branch stable/15 has been updated by ivy:
URL: https://cgit.FreeBSD.org/src/commit/?id=ec58dba0ed806875f7e9da5b1475b85db52421fd
commit ec58dba0ed806875f7e9da5b1475b85db52421fd
Author: Lexi Winter <ivy@FreeBSD.org>
AuthorDate: 2026-08-03 14:08:13 +0000
Commit: Lexi Winter <ivy@FreeBSD.org>
CommitDate: 2026-08-26 09:56:12 +0000
mkimg: Const correctness for C23
On some platforms, e.g. Linux Clang 22.1.8 / glibc 2.43, strchr()
now implements the C23 behaviour where passing a const pointer to
strchr() also returns a const pointer. This breaks mkimg during
the bootstrap build, since it assumes the return value is always
a mutable pointer.
Make the existing 'sep' pointer const to fix the first case, and
for the second, introduce a new non-const pointer for strchr,
since we do modify the result in that case.
MFC after: 1 week
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58493
(cherry picked from commit 9fd8f5e761ba663c8e99eeff64c5a7fd7bcf1e05)
---
usr.bin/mkimg/mkimg.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/usr.bin/mkimg/mkimg.c b/usr.bin/mkimg/mkimg.c
index c625b49dc29a..03dd76943393 100644
--- a/usr.bin/mkimg/mkimg.c
+++ b/usr.bin/mkimg/mkimg.c
@@ -248,7 +248,8 @@ static int
parse_part(const char *spec)
{
struct part *part;
- char *sep;
+ const char *sep;
+ char *asep;
size_t len;
int error;
@@ -301,15 +302,14 @@ parse_part(const char *spec)
goto errout;
}
- spec = part->alias;
- sep = strchr(spec, '/');
- if (sep != NULL) {
- *sep++ = '\0';
- if (strlen(part->alias) == 0 || strlen(sep) == 0) {
+ asep = strchr(part->alias, '/');
+ if (asep != NULL) {
+ *asep++ = '\0';
+ if (strlen(part->alias) == 0 || strlen(asep) == 0) {
error = EINVAL;
goto errout;
}
- part->label = strdup(sep);
+ part->label = strdup(asep);
if (part->label == NULL) {
error = ENOMEM;
goto errout;