block: Do not strcmp() with NULL uri->scheme
uri_parse(...)->scheme may be NULL. In fact, probably every field may be NULL, and the callers do test this for all of the other fields but not for scheme (except for block/gluster.c; block/vxhs.c does not access that field at all). We can easily fix this by using g_strcmp0() instead of strcmp(). Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20170613205726.13544-1-mreitz@redhat.com Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
05cc758a3d
commit
f69165a8fe
@ -64,11 +64,11 @@ static int nbd_parse_uri(const char *filename, QDict *options)
|
||||
}
|
||||
|
||||
/* transport */
|
||||
if (!strcmp(uri->scheme, "nbd")) {
|
||||
if (!g_strcmp0(uri->scheme, "nbd")) {
|
||||
is_unix = false;
|
||||
} else if (!strcmp(uri->scheme, "nbd+tcp")) {
|
||||
} else if (!g_strcmp0(uri->scheme, "nbd+tcp")) {
|
||||
is_unix = false;
|
||||
} else if (!strcmp(uri->scheme, "nbd+unix")) {
|
||||
} else if (!g_strcmp0(uri->scheme, "nbd+unix")) {
|
||||
is_unix = true;
|
||||
} else {
|
||||
ret = -EINVAL;
|
||||
|
@ -82,7 +82,7 @@ static int nfs_parse_uri(const char *filename, QDict *options, Error **errp)
|
||||
error_setg(errp, "Invalid URI specified");
|
||||
goto out;
|
||||
}
|
||||
if (strcmp(uri->scheme, "nfs") != 0) {
|
||||
if (g_strcmp0(uri->scheme, "nfs") != 0) {
|
||||
error_setg(errp, "URI scheme must be 'nfs'");
|
||||
goto out;
|
||||
}
|
||||
|
@ -1046,11 +1046,11 @@ static void sd_parse_uri(SheepdogConfig *cfg, const char *filename,
|
||||
}
|
||||
|
||||
/* transport */
|
||||
if (!strcmp(uri->scheme, "sheepdog")) {
|
||||
if (!g_strcmp0(uri->scheme, "sheepdog")) {
|
||||
is_unix = false;
|
||||
} else if (!strcmp(uri->scheme, "sheepdog+tcp")) {
|
||||
} else if (!g_strcmp0(uri->scheme, "sheepdog+tcp")) {
|
||||
is_unix = false;
|
||||
} else if (!strcmp(uri->scheme, "sheepdog+unix")) {
|
||||
} else if (!g_strcmp0(uri->scheme, "sheepdog+unix")) {
|
||||
is_unix = true;
|
||||
} else {
|
||||
error_setg(&err, "URI scheme must be 'sheepdog', 'sheepdog+tcp',"
|
||||
|
@ -204,7 +204,7 @@ static int parse_uri(const char *filename, QDict *options, Error **errp)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (strcmp(uri->scheme, "ssh") != 0) {
|
||||
if (g_strcmp0(uri->scheme, "ssh") != 0) {
|
||||
error_setg(errp, "URI scheme must be 'ssh'");
|
||||
goto err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user