dotfiles/nixos/configs/gui/waybar/01-fix-privacy-null-pointer-deref.patch

30 lines
1.1 KiB
Diff

commit 86ce9f7278edd5a27467caf3749e8a07e4588260
Author: Kate Adkins <kate@deprekated.net>
Date: Fri Nov 15 12:04:56 2024 -0700
fix null-deref due to unconstructed PrivacyNodeInfo
This would cause Waybar to crash if the privacy module ever got
e.g. a empty (but properly null-terminated) string for the
application_name.
diff --git a/src/util/pipewire/pipewire_backend.cpp b/src/util/pipewire/pipewire_backend.cpp
index 5bb7c19a..3b897178 100644
--- a/src/util/pipewire/pipewire_backend.cpp
+++ b/src/util/pipewire/pipewire_backend.cpp
@@ -126,6 +126,7 @@ void PipewireBackend::handleRegistryEventGlobal(uint32_t id, uint32_t permission
if (proxy == nullptr) return;
auto *pNodeInfo = (PrivacyNodeInfo *)pw_proxy_get_user_data(proxy);
+ new(pNodeInfo) PrivacyNodeInfo{};
pNodeInfo->id = id;
pNodeInfo->data = this;
pNodeInfo->type = mediaType;
@@ -142,6 +143,7 @@ void PipewireBackend::handleRegistryEventGlobalRemove(uint32_t id) {
mutex_.lock();
auto iter = privacy_nodes.find(id);
if (iter != privacy_nodes.end()) {
+ privacy_nodes[id]->~PrivacyNodeInfo();
privacy_nodes.erase(id);
}
mutex_.unlock();