]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
viruri: Search params case insensitively
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 3 Feb 2023 09:23:14 +0000 (10:23 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 8 Feb 2023 15:50:44 +0000 (16:50 +0100)
Our URI handling code (doRemoteOpen() specifically), uses case
insensitive parsing of query part of URI. For instance:

  qemu:///system?socket=/some/path
  qemu:///system?SoCkEt=/some/path

are the same URI. Even though the latter is probably not used
anywhere, let's switch to STRCASEEQ() instead of STREQ() at two
places: virURIGetParam() and virURICheckUnixSocket().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/util/viruri.c

index 88bb0cc1f8c58d20462c46b995131a5debcce7c3..4afdd30c59a378429a5b418f8ddf2d9d1f2cbafb 100644 (file)
@@ -365,13 +365,24 @@ virURIResolveAlias(virConf *conf, const char *alias, char **uri)
 }
 
 
+/**
+ * virURIGetParam:
+ * @uri: URI to get parameter from
+ * @name: name of the parameter
+ *
+ * For parsed @uri, find parameter with name @name and return its value. The
+ * string comparison is case insensitive, by design.
+ *
+ * Returns: a value on success, or
+ *          NULL on error (with error reported)
+ */
 const char *
 virURIGetParam(virURI *uri, const char *name)
 {
     size_t i;
 
     for (i = 0; i < uri->paramsCount; i++) {
-        if (STREQ(uri->params[i].name, name))
+        if (STRCASEEQ(uri->params[i].name, name))
             return uri->params[i].value;
     }
 
@@ -389,6 +400,8 @@ virURIGetParam(virURI *uri, const char *name)
  * scenario the socket might be proxied to a remote server even though the URI
  * looks like it is only local.
  *
+ * The "socket" parameter is looked for in case insensitive manner, by design.
+ *
  * Returns: true if the URI might be proxied to a remote server
  */
 bool
@@ -403,7 +416,7 @@ virURICheckUnixSocket(virURI *uri)
         return false;
 
     for (i = 0; i < uri->paramsCount; i++) {
-        if (STREQ(uri->params[i].name, "socket"))
+        if (STRCASEEQ(uri->params[i].name, "socket"))
             return true;
     }