X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=libvfio-user-alloca.patch;fp=libvfio-user-alloca.patch;h=5b6931e76ea59611d26754e49dd155aca38fd4c3;hb=58b103f4524fcf7271280b74299454f4602fcd65;hp=0000000000000000000000000000000000000000;hpb=b8cf8ecfe02f049a7b83ea0009981899b325e249;p=packages%2Fqemu.git diff --git a/libvfio-user-alloca.patch b/libvfio-user-alloca.patch new file mode 100644 index 0000000..5b6931e --- /dev/null +++ b/libvfio-user-alloca.patch @@ -0,0 +1,35 @@ +--- 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