PipeWire camera: Fix cleanup order
The hook is associated with the proxy object. We should remove the hook
first before destroying the proxy object to avoid use-after-free.
Bug: webrtc:42225999
Change-Id: I3846a93e348927329c29982569dec434c40bdd16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/379100
Reviewed-by: Andreas Pehrson <apehrson@mozilla.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#44002}
diff --git a/modules/video_capture/linux/pipewire_session.cc b/modules/video_capture/linux/pipewire_session.cc
index 98eb656..b55fac1 100644
--- a/modules/video_capture/linux/pipewire_session.cc
+++ b/modules/video_capture/linux/pipewire_session.cc
@@ -57,8 +57,8 @@
void PipeWireNode::PipeWireNodeDeleter::operator()(
PipeWireNode* node) const noexcept {
- pw_proxy_destroy(node->proxy_);
spa_hook_remove(&node->node_listener_);
+ pw_proxy_destroy(node->proxy_);
}
// static