mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
virsh-snapshot: Avoid passing NULL to qsort() in virshSnapshotListCollect()
If a domain has no snapshots and 'virsh snapshot-list' is called, this gets all the way down to virshSnapshotListCollect() which then collects all snapshots (none), and passes them to qsort() which doesn't like being called with NULL: extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __nonnull ((1, 4)); Resolves: https://gitlab.com/libvirt/libvirt/-/issues/533 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
bfe53e9145
commit
67c93cfae9
@ -1310,9 +1310,11 @@ virshSnapshotListCollect(vshControl *ctl, virDomainPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(orig_flags & VIR_DOMAIN_SNAPSHOT_LIST_TOPOLOGICAL))
|
if (!(orig_flags & VIR_DOMAIN_SNAPSHOT_LIST_TOPOLOGICAL) &&
|
||||||
|
snaplist->snaps && snaplist->nsnaps) {
|
||||||
qsort(snaplist->snaps, snaplist->nsnaps, sizeof(*snaplist->snaps),
|
qsort(snaplist->snaps, snaplist->nsnaps, sizeof(*snaplist->snaps),
|
||||||
virshSnapSorter);
|
virshSnapSorter);
|
||||||
|
}
|
||||||
snaplist->nsnaps -= deleted;
|
snaplist->nsnaps -= deleted;
|
||||||
|
|
||||||
ret = g_steal_pointer(&snaplist);
|
ret = g_steal_pointer(&snaplist);
|
||||||
|
Loading…
Reference in New Issue
Block a user