Commit 684dd86f authored by Daniel Verkamp's avatar Daniel Verkamp
Browse files

vhost_iommu: handle realloc() failure



Change-Id: I50203e0e02d2201fea5112789c1fd84b9a61417a
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/369283


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 4c408e79
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -196,8 +196,17 @@ vfio_pci_memory_region_op(uint64_t vaddr, uint64_t phys_addr, uint64_t size, int
		}

		if (vfio_cfg.maps_count == vfio_cfg.maps_max_count) {
			vfio_cfg.maps_max_count += 128;
			vfio_cfg.maps = realloc(vfio_cfg.maps, vfio_cfg.maps_max_count * sizeof(vfio_cfg.maps[0]));
			struct vfio_map *new_maps;
			size_t new_maps_max_count;

			new_maps_max_count = vfio_cfg.maps_max_count + 128;
			new_maps = realloc(vfio_cfg.maps, new_maps_max_count * sizeof(vfio_cfg.maps[0]));
			if (new_maps == NULL) {
				return -ENOMEM;
			}

			vfio_cfg.maps_max_count = new_maps_max_count;
			vfio_cfg.maps = new_maps;
			map = &vfio_cfg.maps[idx];
		}