Richard W.M. Jones
2017-Apr-28 09:25 UTC
[Libguestfs] [PATCH] launch: Error if you try to launch with too many drives.
In particular the virt-rescue --scratch option makes it very easy to add huge numbers of drives. Since the per-backend max_disks limit was never checked anywhere you could get peculiar failures. Now you'll get a clear error message: $ virt-rescue --scratch=256 libguestfs: error: too many drives have been added, the current backend only supports 255 drives --- lib/launch.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/launch.c b/lib/launch.c index 7f06c69..a977db5 100644 --- a/lib/launch.c +++ b/lib/launch.c @@ -55,12 +55,23 @@ static struct backend { int guestfs_impl_launch (guestfs_h *g) { + int r; + /* Configured? */ if (g->state != CONFIG) { error (g, _("the libguestfs handle has already been launched")); return -1; } + /* Too many drives? */ + r = guestfs_max_disks (g); + if (r == -1) + return -1; + if (g->nr_drives > (size_t) r) { + error (g, _("too many drives have been added, the current backend only supports %d drives"), r); + return -1; + } + /* Start the clock ... */ gettimeofday (&g->launch_t, NULL); TRACE0 (launch_start); -- 2.9.3
Possibly Parallel Threads
- [PATCH v2] launch: Error if you try to launch with too many drives.
- [PATCH v2] launch: Error if you try to launch with too many drives.
- [PATCH v3 09/11] launch: Remove guestfs_int_print_timestamped_message function.
- [PATCH] tests: Replace test-max-disks with several tests.
- [PATCH v3 RESEND] direct, fish: add blocksize as optional argument for launch command