live: add disk index bounds check

Add disk index bounds checks for setup() and image_create().
Prevent backtrace logging when an invalid disk index is used.
master v1.3.2-16
Alejandro Sirgo Rica 2024-09-02 13:44:09 +02:00
parent f2a2f53074
commit 6704abc620
1 changed files with 10 additions and 4 deletions

View File

@ -413,7 +413,7 @@ class OgLiveOperations:
def setup(self, request, ogRest): def setup(self, request, ogRest):
table_type = request.getType() table_type = request.getType()
disk = request.getDisk() disk = int(request.getDisk())
cache = request.getCache() cache = request.getCache()
cache_size = request.getCacheSize() cache_size = request.getCacheSize()
partlist = request.getPartitionSetup() partlist = request.getPartitionSetup()
@ -424,7 +424,10 @@ class OgLiveOperations:
umount_all() umount_all()
umount_cache() umount_cache()
diskname = get_disks()[int(disk)-1] if disk < 0 or disk > len(get_disks()):
raise OgError(f'Invalid disk number {disk}, {len(get_disks())} disks available.')
diskname = get_disks()[disk-1]
cxt = fdisk.Context(f'/dev/{diskname}', cxt = fdisk.Context(f'/dev/{diskname}',
details=True) details=True)
@ -469,9 +472,9 @@ class OgLiveOperations:
partition = int(part["partition"]) partition = int(part["partition"])
if fs == 'cache': if fs == 'cache':
err = mkfs('ext4', int(disk), partition, label='CACHE') err = mkfs('ext4', disk, partition, label='CACHE')
else: else:
err = mkfs(fs, int(disk), partition) err = mkfs(fs, disk, partition)
if err == -1: if err == -1:
raise OgError(f'Failed to format {part["partition"]} with filesystem {part["filesystem"]}') raise OgError(f'Failed to format {part["partition"]} with filesystem {part["filesystem"]}')
@ -554,6 +557,9 @@ class OgLiveOperations:
if ogRest.terminated: if ogRest.terminated:
return return
if disk < 0 or disk > len(get_disks()):
raise OgError(f'Invalid disk number {disk}, {len(get_disks())} disks available.')
diskname = get_disks()[disk-1] diskname = get_disks()[disk-1]
cxt = fdisk.Context(f'/dev/{diskname}', details=True) cxt = fdisk.Context(f'/dev/{diskname}', details=True)
pa = None pa = None