pkttyagent: backport patch, get SIGTTOU in background job

This commit is contained in:
Jan Rybar 2019-08-02 15:14:56 +02:00
parent 5f4fb6e4e8
commit 107fa92b35
2 changed files with 36 additions and 1 deletions

View File

@ -0,0 +1,30 @@
From 76aae4fce586b400f5fe08df31497db19d624609 Mon Sep 17 00:00:00 2001
From: Jan Rybar <jrybar@redhat.com>
Date: Thu, 1 Aug 2019 06:46:10 +0000
Subject: [PATCH] pkttyagent: process stopped by SIGTTOU if run in background
job
---
src/programs/pkttyagent.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/programs/pkttyagent.c b/src/programs/pkttyagent.c
index 3c8d502..13879a2 100644
--- a/src/programs/pkttyagent.c
+++ b/src/programs/pkttyagent.c
@@ -264,6 +264,12 @@ main (int argc, char *argv[])
memset (&sa, 0, sizeof (sa));
sa.sa_handler = &tty_handler;
+/* If tty_handler() resets terminal while pkttyagent is run in background job,
+ the process gets stopped by SIGTTOU. This impacts systemctl, hence it must
+ be blocked for a while and then the process gets killed anyway.
+ */
+ sigemptyset(&sa.sa_mask);
+ sigaddset(&sa.sa_mask, SIGTTOU);
sigaction (SIGTERM, &sa, &savesigterm);
sigaction (SIGINT, &sa, &savesigint);
sigaction (SIGTSTP, &sa, &savesigtstp);
--
2.20.1

View File

@ -6,12 +6,14 @@
Summary: An authorization framework
Name: polkit
Version: 0.116
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPLv2+
URL: http://www.freedesktop.org/wiki/Software/polkit
Source0: http://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
Source1: http://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz.sign
Patch1: polkit-0.116-pkttyagent-sigttou-bg-job.patch
BuildRequires: gcc-c++
BuildRequires: glib2-devel >= 2.30.0
BuildRequires: expat-devel
@ -174,6 +176,9 @@ exit 0
%{_libdir}/girepository-1.0/*.typelib
%changelog
* Fri Aug 02 2019 Jan Rybar <jrybar@redhat.com> - 0.116-3
- pkttyagent: backport patch, get SIGTTOU in background job
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.116-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild