pipewire/spa/include/spa
Wim Taymans e317edcfb9 pod: rework the parser
Make a new body.h file with some functions to deal with pod and their
body. Make the iter.h functions use mostly this.

Rework the parser so that it only uses body.h functions. With the separation
of pod+body, we can read and verify the pod once and then use the
verified copy to handle the rest of the body safely.

We do this because iter.h only works in pods in memory that doesn't change
because it is vulnerable to modifications of the data after verifying it.

The new parser is not vulnerable to this and will not cause invalid
memory access when used on shared memory. There is however no need for
atomic operations to read the headers, whever is read is either valid
and useable of invalid and rejected.

See #4822
2025-07-29 15:15:02 +02:00
..
buffer *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
control *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
debug pod: rework the parser 2025-07-29 15:15:02 +02:00
filter-graph *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
graph *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
interfaces/audio add per type API defines 2024-11-26 11:58:51 +01:00
monitor *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
node spa: node: io: fix typo in documentation 2025-07-23 21:26:29 +02:00
param pod: rework the parser 2025-07-29 15:15:02 +02:00
pod pod: rework the parser 2025-07-29 15:15:02 +02:00
support loop: add docs about the locking 2025-06-10 18:00:01 +02:00
utils *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00