mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
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
This commit is contained in:
1 parent
2296c39a9e
commit
9fd8f5e761
1 file changed
+7
-7
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user