[arch-commits] Commit in rng-tools/trunk (PKGBUILD rngd-test-signal-in-loop.patch)
Massimiliano Torromeo
mtorromeo at archlinux.org
Thu Mar 5 11:09:52 UTC 2015
Date: Thursday, March 5, 2015 @ 12:09:52
Author: mtorromeo
Revision: 128755
upgpkg: rng-tools 5-3
Patched to catch SIGTERM signal (fixes FS#44045)
Added:
rng-tools/trunk/rngd-test-signal-in-loop.patch
Modified:
rng-tools/trunk/PKGBUILD
--------------------------------+
PKGBUILD | 13 ++++++++++---
rngd-test-signal-in-loop.patch | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2015-03-05 10:30:31 UTC (rev 128754)
+++ PKGBUILD 2015-03-05 11:09:52 UTC (rev 128755)
@@ -4,7 +4,7 @@
pkgname=rng-tools
pkgver=5
-pkgrel=2
+pkgrel=3
pkgdesc="Random number generator related utilities"
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/gkernel/"
@@ -13,8 +13,14 @@
backup=(etc/conf.d/rngd)
source=(http://downloads.sourceforge.net/sourceforge/gkernel/$pkgname-$pkgver.tar.gz
rngd.conf
- rngd.service)
+ rngd.service
+ rngd-test-signal-in-loop.patch)
+prepare() {
+ cd "$srcdir"/$pkgname-$pkgver
+ patch -p1 -i "$srcdir"/rngd-test-signal-in-loop.patch
+}
+
build() {
cd "$srcdir"/$pkgname-$pkgver
./configure --prefix=/usr --sbindir=/usr/bin
@@ -30,4 +36,5 @@
sha256sums=('60a102b6603bbcce2da341470cad42eeaa9564a16b4490e7867026ca11a3078e'
'f4fd197dd682cdab07ddeabe8d3b73b1bc2e1cf322237be238a26b49a7dcb047'
- '33c2ab16ca13bc5275f0f1280bfa0dbf37c66d4a96e492774a4587a17946957d')
+ '33c2ab16ca13bc5275f0f1280bfa0dbf37c66d4a96e492774a4587a17946957d'
+ 'fec42e65a2f48a4b1a96d839b45d5890651877016f4767f63a5186424dd61a2d')
Added: rngd-test-signal-in-loop.patch
===================================================================
--- rngd-test-signal-in-loop.patch (rev 0)
+++ rngd-test-signal-in-loop.patch 2015-03-05 11:09:52 UTC (rev 128755)
@@ -0,0 +1,36 @@
+From: Leonardo Chiquitto <leonardo at ngdn.org>
+Subject: Check for signals in update_kernel_random()
+
+When running as a daemon, a signal handler is installed to catch
+SIGINT/SIGTERM. This handler sets a flag that's tested in the main
+loop. However, rngd loops in update_kernel_random() as well, where
+the flag was not tested.
+
+This patch adds the check to update_kernel_random() so that the
+daemon exits properly after receiving a SIGINT/SIGTERM signal.
+
+Index: rng-tools-5/rngd.c
+===================================================================
+--- rng-tools-5.orig/rngd.c
++++ rng-tools-5/rngd.c
+@@ -218,6 +218,8 @@ static int update_kernel_random(int rand
+
+ for (p = buf; p + random_step <= &buf[FIPS_RNG_BUFFER_SIZE];
+ p += random_step) {
++ if (!server_running)
++ return 0;
+ random_add_entropy(p, random_step);
+ random_sleep();
+ }
+@@ -239,10 +241,10 @@ static void do_loop(int random_step)
+ {
+ int rc;
+
++ retry_same:
+ if (!server_running)
+ return;
+
+- retry_same:
+ if (iter->disabled)
+ continue; /* failed, no work */
+
More information about the arch-commits
mailing list