@samitouri / QOSamiQemu / commits / 149c82cad2

block: Use glib2 instead of strcasecmp/strncasecmp

This is a change in semantics. g_ascii_strcasecmp() doesn't honour locale but strcasecmp() does. But this is OK for at least one reason: (1) QEMU always runs with the C locale so there's not an actual behaviour change here (2) we want the comparison on url prefix and it should be a plain ASCII one, not to do weird things with "I" in Turkish locales, so g_ascii_strcasecmp() is better as it's explicit about that Signed-off-by: Kostiantyn Kostiuk <kkostiuk@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Link: https://lore.kernel.org/r/20260327134401.270186-4-kkostiuk@redhat.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Kostiantyn Kostiuk committed Mar 27, 2026 at 15:43 UTC 149c82cad2cbdb5b2e740c4ad484e812a161fe8a
1 file changed +2 -2
block/curl.c
+2 -2
@@ -871,8 +871,8 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
871 goto out;
872 }
873
874 - if ((!strncasecmp(s->url, "http://", strlen("http://"))
875 - || !strncasecmp(s->url, "https://", strlen("https://")))
874 + if ((!g_ascii_strncasecmp(s->url, "http://", strlen("http://"))
875 + || !g_ascii_strncasecmp(s->url, "https://", strlen("https://")))
876 && !s->accept_range) {
877 pstrcpy(state->errmsg, CURL_ERROR_SIZE,
878 "Server does not support 'range' (byte ranges).");