Featured image of post PipeASIO: ASIO bridge for PipeWire released in v1.2.1

PipeASIO: ASIO bridge for PipeWire released in v1.2.1

PipeASIO, an ASIO bridge for PipeWire on Linux (primarily for use with Wine), has been released in version v1.2.1.

This release focuses on stability and security: a thread leak, a use-after-free vulnerability, and a buffer overrun in the PipeWire output path have all been fixed. The audio thread now finally runs at the correct real-time priority.

Changed

  • Wine integration probes now run under CTest with Linux-native unit tests, enabling comprehensive test coverage via ctest --test-dir build.

Fixed

  • Real-time scheduling: The audio thread previously ran at normal priority, causing performance issues. Now properly mapped to SCHED_FIFO priority 77, with fallback handling for permission errors.
  • Thread leak: Each audio_open call leaked a zombie thread. The initial data loop is now properly stopped and joined before bridge installation.
  • Use-after-free vulnerability: Synchronous kAsioResetRequest handling could trigger crashes. The watcher state now uses reference counting and safer threading patterns.
  • Buffer overrun: RT output writes exceeded PipeWire buffer capacity when the graph quantum was clamped. Writes are now capacity-checked in both 64-bit and WoW64 paths.
  • Sample position wrapping: 64-bit counters wrapped every ~25 hours at 48 kHz. Counters now use atomic 64-bit storage, fixing both wraparound and torn reads.

PipeASIO Panel Monitor

PipeASIO Panel Settings

Source: GitHub

PlayingTux – Playing Games on Linux - since 1995.