tests/vhost-user-bridge.c: Fix const qualifier build errors with recent glibc

A recent change in glibc 2.42.9000 [1] changes the return type of
strstr() and other string functions to be 'const char *' when the
input is a 'const char *'. This breaks the build in :

../tests/vhost-user-bridge.c: In function ‘vubr_parse_host_port’:
../tests/vhost-user-bridge.c:749:15: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  749 |     char *p = strchr(buf, ':');
      |               ^~~~~~

Fix this by using the glib g_strsplit() routine instead of strdup().

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Yodel Eldar <yodel.eldar@yodel.dev>
Tested-by: Yodel Eldar <yodel.eldar@yodel.dev>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20251215101937.281722-3-clg@redhat.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
Cédric Le Goater
2025-12-15 11:19:35 +01:00
parent 2f5c96d534
commit e37a0d514a

View File

@@ -746,14 +746,12 @@ vubr_run(VubrDev *dev)
static int static int
vubr_parse_host_port(const char **host, const char **port, const char *buf) vubr_parse_host_port(const char **host, const char **port, const char *buf)
{ {
char *p = strchr(buf, ':'); g_auto(GStrv) tokens = g_strsplit(buf, ":", 2);
if (!tokens[0] || !tokens[1]) {
if (!p) {
return -1; return -1;
} }
*p = '\0'; *host = g_steal_pointer(&tokens[0]);
*host = strdup(buf); *port = g_steal_pointer(&tokens[1]);
*port = strdup(p + 1);
return 0; return 0;
} }