diff --git a/package/yast2-bootloader.changes b/package/yast2-bootloader.changes index fd0e98bf3..ee92ed0a9 100644 --- a/package/yast2-bootloader.changes +++ b/package/yast2-bootloader.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Mar 10 12:47:05 UTC 2021 - Josef Reidinger + +- Add validation to device map dialog to prevent exceeding BIOS + limit of device map (bsc#1183218) +- 4.3.25 + ------------------------------------------------------------------- Thu Mar 4 09:09:20 UTC 2021 - Josef Reidinger diff --git a/package/yast2-bootloader.spec b/package/yast2-bootloader.spec index f070faf37..659016fb7 100644 --- a/package/yast2-bootloader.spec +++ b/package/yast2-bootloader.spec @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 4.3.24 +Version: 4.3.25 Release: 0 Summary: YaST2 - Bootloader Configuration License: GPL-2.0-or-later diff --git a/src/lib/bootloader/device_map_dialog.rb b/src/lib/bootloader/device_map_dialog.rb index 73d9df786..396f82d1a 100644 --- a/src/lib/bootloader/device_map_dialog.rb +++ b/src/lib/bootloader/device_map_dialog.rb @@ -61,6 +61,11 @@ def controller_loop Yast::Popup.Error(_("Device map must contain at least one device")) next end + max_dev = Bootloader::DeviceMap::BIOS_LIMIT + if disks.size > max_dev + Yast::Popup.Error(_("Device map can have at maximum %i devices") % max_dev) + next + end store_order return :back # we just go back to original dialog when :cancel @@ -212,12 +217,15 @@ def selected_disk_index end def refresh_buttons + # by default enable delete and later disable if there are no disks + Yast::UI.ChangeWidget(Id(:delete), :Enabled, true) pos = selected_disk_index if !pos # nothing selected disk_to_select = disks.first # there is no disks if !disk_to_select up_down_enablement(false, false) + Yast::UI.ChangeWidget(Id(:delete), :Enabled, false) return end Yast::UI.ChangeWidget(Id(:disks), :CurrentItem, disk_to_select)