diff --git a/src/pipewire/mem.c b/src/pipewire/mem.c index 642a6b78e..e398a8f09 100644 --- a/src/pipewire/mem.c +++ b/src/pipewire/mem.c @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -856,8 +857,10 @@ void pw_memblock_free(struct pw_memblock *block) } if (block->fd != -1 && !(block->flags & PW_MEMBLOCK_FLAG_DONT_CLOSE)) { - pw_log_debug("%p: close fd:%d", pool, block->fd); - close(block->fd); + int fd = spa_steal_fd(block->fd); + pw_log_debug("%p: block:%p close fd:%d", pool, block, fd); + if (close(fd) < 0) + pw_log_error("%p: block:%p close fd:%d failed: %m", pool, block, fd); } spa_hook_list_clean(&b->listener_list);