Assigning the result of strstr() to a 'char *' is unsafe since strstr() returns a pointer into the original string which is a read-only 'const char *' string.
A recent change in glibc 2.42.9000 : https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690 breaks compiles, complaining the result of strstr() is not a 'const char *' : ../util/log.c:208:24: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 208 | char *pidstr = strstr(filename, "%"); | ^~~~~~ Fix that. Reviewed-by: Laurent Vivier <[email protected]> Reviewed-by: Peter Maydell <[email protected]> Link: https://lore.kernel.org/qemu-devel/[email protected] Signed-off-by: Cédric Le Goater <[email protected]> --- util/log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/log.c b/util/log.c index 41f78ce86b2522b8b7072c8b76d8e18603142db6..c44d66b5ce78338cf1b2cd26b7503cb94d4570cb 100644 --- a/util/log.c +++ b/util/log.c @@ -203,7 +203,7 @@ static ValidFilenameTemplateResult valid_filename_template(const char *filename, bool per_thread, Error **errp) { if (filename) { - char *pidstr = strstr(filename, "%"); + const char *pidstr = strstr(filename, "%"); if (pidstr) { /* We only accept one %d, no other format strings */ -- 2.52.0
