[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 00/28] glib: Replace g_memdup() by g_memdup2()
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v3 00/28] glib: Replace g_memdup() by g_memdup2() |
Date: |
Wed, 8 May 2024 23:22:27 +0200 |
User-agent: |
Mozilla Thunderbird |
On 3/9/21 19:44, Philippe Mathieu-Daudé wrote:
Per
https://discourse.gnome.org/t/port-your-module-from-g-memdup-to-g-memdup2-now/5538
The old API took the size of the memory to duplicate as a guint,
whereas most memory functions take memory sizes as a gsize. This
made it easy to accidentally pass a gsize to g_memdup(). For large
values, that would lead to a silent truncation of the size from 64
to 32 bits, and result in a heap area being returned which is
significantly smaller than what the caller expects. This can likely
be exploited in various modules to cause a heap buffer overflow.
g_memdup() as been deprecated in GLib 2.68. Since QEMU defines
GLIB_VERSION_MAX_ALLOWED to GLIB_VERSION_2_56, the deprecation
is not displayed (on GLib >= 2.68 such available on Fedora 34).
However the function is still unsafe, so it is better to avoid
its use.
This series provides the safely equivalent g_memdup2() wrapper,
and replace all g_memdup() calls by it.
Philippe Mathieu-Daudé (28):
block/qcow2-bitmap: Replace g_memdup() by g_memdup2()
hw/hppa/machine: Replace g_memdup() by g_memdup2()
hw/ppc/spapr_pci: Replace g_memdup() by g_memdup2()
target/ppc: Replace g_memdup() by g_memdup2()
Thanks, patches 5, 11, 15 & 26 queued to hw-misc tree
adding the comment suggested by Eric on patch 5.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v3 00/28] glib: Replace g_memdup() by g_memdup2(),
Philippe Mathieu-Daudé <=