--- /dev/null
+--- qemu-7.2.10/subprojects/libvfio-user/samples/client.c.orig 2024-04-04 06:27:19.254657097 +0200
++++ qemu-7.2.10/subprojects/libvfio-user/samples/client.c 2024-04-04 16:55:35.883734463 +0200
+@@ -310,7 +310,10 @@ get_device_region_info(int sock, uint32_
+ size_t nr_fds = ARRAY_SIZE(fds);
+
+
+- region_info = alloca(size);
++ region_info = malloc(size);
++ if (region_info == NULL) {
++ err(EXIT_FAILURE, "%m\n");
++ }
+ memset(region_info, 0, size);
+ region_info->argsz = size;
+ region_info->index = index;
+@@ -318,7 +321,11 @@ get_device_region_info(int sock, uint32_
+ do_get_device_region_info(sock, region_info, NULL, 0);
+ if (region_info->argsz > size) {
+ size = region_info->argsz;
+- region_info = alloca(size);
++ free(region_info);
++ region_info = malloc(size);
++ if (region_info == NULL) {
++ err(EXIT_FAILURE, "%m\n");
++ }
+ memset(region_info, 0, size);
+ region_info->argsz = size;
+ region_info->index = index;
+@@ -344,6 +351,7 @@ get_device_region_info(int sock, uint32_
+ }
+ }
+ }
++ free(region_info);
+ }
+
+ static void