block: Fix bdrv_iterate_format() sorting

bdrv_iterate_format() did not actually sort the formats by name but by
"pointer interpreted as string". That is probably not what we intended
to do, so fix it (by changing qsort_strcmp() so it matches the example
from qsort()'s manual page).

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20161012204907.25941-2-mreitz@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Max Reitz 2016-10-12 22:49:05 +02:00
parent 07555ba6f3
commit ceff5bd79c

View File

@ -2796,7 +2796,7 @@ const char *bdrv_get_format_name(BlockDriverState *bs)
static int qsort_strcmp(const void *a, const void *b)
{
return strcmp(a, b);
return strcmp(*(char *const *)a, *(char *const *)b);
}
void bdrv_iterate_format(void (*it)(void *opaque, const char *name),