[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