fix sender_seen memory leak

This commit is contained in:
zhuofeng 2023-03-14 11:41:44 +08:00
parent 7034ad6a47
commit 36f1be42b0
2 changed files with 58 additions and 2 deletions

View File

@ -0,0 +1,48 @@
From 48c8032695fedbd92bb24a2c2d4c3a4d83732409 Mon Sep 17 00:00:00 2001
From: zhuofeng <zhuofeng2@huawei.com>
Date: Mon, 6 Mar 2023 15:19:06 +0800
Subject: [PATCH] fix sender_seen memory leak
---
slip/dbus/service.py | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/slip/dbus/service.py b/slip/dbus/service.py
index 5d276f8..bf4cb77 100644
--- a/slip/dbus/service.py
+++ b/slip/dbus/service.py
@@ -224,11 +224,12 @@ class Object(with_metaclass(InterfaceType, dbus.service.Object)):
if not new_owner and (old_owner, conn) in Object.senders:
Object.senders.remove((old_owner, conn))
Object.connections_senders[conn].remove(old_owner)
+ if old_owner in Object.connections_smobjs:
+ Object.connections_smobjs[old_owner].remove()
+ del Object.connections_smobjs[old_owner]
if len(Object.connections_senders[conn]) == 0:
- Object.connections_smobjs[conn].remove()
del Object.connections_senders[conn]
- del Object.connections_smobjs[conn]
if not self.persistent and len(Object.senders) == 0 and \
Object.current_source is None:
@@ -251,10 +252,10 @@ class Object(with_metaclass(InterfaceType, dbus.service.Object)):
Object.senders.add((sender, self.connection))
if self.connection not in Object.connections_senders:
Object.connections_senders[self.connection] = set()
- Object.connections_smobjs[self.connection] = \
- self.connection.add_signal_receiver(
- handler_function=self._name_owner_changed,
- signal_name='NameOwnerChanged',
- dbus_interface='org.freedesktop.DBus',
- arg1=sender)
+ Object.connections_smobjs[sender] = \
+ self.connection.add_signal_receiver(
+ handler_function=self._name_owner_changed,
+ signal_name='NameOwnerChanged',
+ dbus_interface='org.freedesktop.DBus',
+ arg1=sender)
Object.connections_senders[self.connection].add(sender)
--
2.27.0

View File

@ -1,11 +1,13 @@
Name: python-slip
Version: 0.6.5
Release: 5
Release: 6
Summary: Library for Python 2.x with Convenience, extension and workaround
License: GPLv2+
URL: https://github.com/nphilipp/%{name}
Source0: https://github.com/nphilipp/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
Patch9000: huawei-fix-sender_seen-memory-leak.patch
BuildArch: noarch
BuildRequires: python3 python3-devel
@ -27,7 +29,7 @@ Obsoletes: python3-slip-dbus
Slip for Python 3.x packages
%prep
%autosetup
%autosetup -n %{name}-%{version} -p1
find . -name '*.py' -o -name '*.py.in' | xargs sed -i '1s|^#!python|#!%{__python3}|'
@ -49,6 +51,12 @@ find . -name '*.py' -o -name '*.py.in' | xargs sed -i '1s|^#!python|#!%{__pyth
%{python3_sitelib}/slip*-%{version}-py%{python3_version}.egg-info
%changelog
* Tue Mar 14 2023 zhuofeng <zhuofeng@huawei.com> - 0.6.5-6
- Type:bugfix
- CVE:NA
- SUG:NA
- DESC:fix sender_seen memory leak
* Wed Nov 4 2020 wangjie<wangjie294@huawei.com> -0.6.5-5
- Type:NA
- ID:NA