]> sourceware.org Git - lvm2.git/commitdiff
vgchange: max_pv limited to uint32
authorZdenek Kabelac <zkabelac@redhat.com>
Tue, 3 Jan 2017 12:04:51 +0000 (13:04 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Tue, 3 Jan 2017 13:55:16 +0000 (14:55 +0100)
Solves: https://bugzilla.redhat.com/1280496

The only reasonable behaviour here is to error on
any number out of accepted range (i.e. now numbers
wrapping around with some hidden logic).

As this is plain bug there is no support for
backward compatibility since noone should
set numbers >UINT32_MAX and expect 0 or error
depending on how big number was used....

TODO: more fields might need to be converted.

WHATS_NEW
test/shell/vgchange-usage.sh
tools/args.h

index e5bbfe01da374c0e707ad756cffa5d2d1a24d805..9e16b278e4979c8ba48f1ae2ad38e3d672f7abe1 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.169 - 
 =====================================
+  vgchange -p accepts only uint32 numbers.
   Report thin LV date for merged LV when the merge is in progress.
   Detect if snapshot merge really started before polling for progress.
   Checking LV for merging origin requires also it has merged snapshot.
index 91637411c634ba9d7b5ea027a5775e036c824d88..08d81143860a15de80ec15ab93ce247dae769230 100644 (file)
@@ -53,6 +53,13 @@ not vgchange -p 2 $vg 2>err
 grep "MaxPhysicalVolumes is less than the current number $pv_count of PVs for" err
 check vg_field $vg max_pv 128
 
+# try some numbers around MAX limit (uint32)
+vgchange -p 4294967295 $vg
+invalid vgchange -p 4294967296 $vg
+invalid vgchange -p 18446744073709551615 $vg
+invalid vgchange -p 18446744073709551616 $vg
+check vg_field $vg max_pv 4294967295
+
 # vgchange -l MaxLogicalVolumes
 check vg_field $vg max_lv 0
 invalid vgchange -l -128 $vg
index a04d81d5e355cf31ef8983e79d9b4614f8e394f3..d5f1186a161bf6d88d20ece6963c6534c5c4764c 100644 (file)
@@ -198,7 +198,7 @@ arg(novolumegroup_ARG, 'n', "novolumegroup", NULL, 0, 0)
 arg(oldpath_ARG, 'n', "oldpath", NULL, 0, 0)
 arg(options_ARG, 'o', "options", string_arg, ARG_GROUPABLE, 0)
 arg(sort_ARG, 'O', "sort", string_arg, ARG_GROUPABLE, 0)
-arg(maxphysicalvolumes_ARG, 'p', "maxphysicalvolumes", int_arg, 0, 0)
+arg(maxphysicalvolumes_ARG, 'p', "maxphysicalvolumes", uint32_arg, 0, 0)
 arg(permission_ARG, 'p', "permission", permission_arg, 0, 0)
 arg(partial_ARG, 'P', "partial", NULL, 0, 0)
 arg(physicalvolume_ARG, 'P', "physicalvolume", NULL, 0, 0)
This page took 0.054413 seconds and 5 git commands to generate.