mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-07-05 00:06:16 -04:00
Memory Safety: Medium Several functions in the PulseAudio protocol implementation use alloca() to allocate arrays of port_info, profile_info, or dict_item structs based on counts derived from card parameters or client property lists. These counts have no upper bounds, so a card object with a very large number of parameters or a client sending many properties can cause alloca() to exhaust the stack, resulting in a stack overflow crash. Add a MAX_ALLOCA_SIZE (64KB) limit and check element counts before each alloca() call. If the requested allocation exceeds the limit, the function returns -ENOMEM instead of crashing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| daemon | ||
| examples | ||
| gst | ||
| modules | ||
| pipewire | ||
| tests | ||
| tools | ||
| meson.build | ||