anitazha / rpms / systemd

Forked from rpms/systemd 3 years ago
Clone

Blame SOURCES/0345-bus_open-leak-sd_event_source-when-udevadm-trigger.patch

c2dfb7
From 448b34284c09469eaa2168291ccb34afc3e4cc1d Mon Sep 17 00:00:00 2001
c2dfb7
From: ven <2988994+hexiaowen@users.noreply.github.com>
c2dfb7
Date: Wed, 22 May 2019 14:24:28 +0800
c2dfb7
Subject: [PATCH] =?UTF-8?q?bus=5Fopen=20leak=20sd=5Fevent=5Fsource=20when?=
c2dfb7
 =?UTF-8?q?=20udevadm=20trigger=E3=80=82?=
c2dfb7
MIME-Version: 1.0
c2dfb7
Content-Type: text/plain; charset=UTF-8
c2dfb7
Content-Transfer-Encoding: 8bit
c2dfb7
c2dfb7
On my host, when executing the udevadm trigger, I only receive the change event, which causes memleak
c2dfb7
c2dfb7
(cherry picked from commit b2774a3ae692113e1f47a336a6c09bac9cfb49ad)
c2dfb7
c2dfb7
Resolves: #1798504
c2dfb7
---
c2dfb7
 src/login/logind-button.c | 1 +
c2dfb7
 1 file changed, 1 insertion(+)
c2dfb7
c2dfb7
diff --git a/src/login/logind-button.c b/src/login/logind-button.c
c2dfb7
index 0defa6b9ba..9944eb2316 100644
c2dfb7
--- a/src/login/logind-button.c
c2dfb7
+++ b/src/login/logind-button.c
c2dfb7
@@ -341,6 +341,7 @@ int button_open(Button *b) {
c2dfb7
 
c2dfb7
         (void) button_set_mask(b);
c2dfb7
 
c2dfb7
+        b->io_event_source = sd_event_source_unref(b->io_event_source);
c2dfb7
         r = sd_event_add_io(b->manager->event, &b->io_event_source, b->fd, EPOLLIN, button_dispatch, b);
c2dfb7
         if (r < 0) {
c2dfb7
                 log_error_errno(r, "Failed to add button event: %m");