diff --git a/backport-Obey-restrictions-on-x86_rdrand_bytes-usage.patch b/backport-Obey-restrictions-on-x86_rdrand_bytes-usage.patch new file mode 100644 index 0000000000000000000000000000000000000000..e4c8e58759b9efce082962130ffd4e84d6d93ef9 --- /dev/null +++ b/backport-Obey-restrictions-on-x86_rdrand_bytes-usage.patch @@ -0,0 +1,32 @@ +From 5244d384e706a546fd1a72cc004a9d6551f0d84b Mon Sep 17 00:00:00 2001 +From: Lon Willett +Date: Sun, 30 Sep 2018 21:25:07 +0200 +Subject: [PATCH 005/113] Obey restrictions on x86_rdrand_bytes usage + +--- + rngd_rdrand.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/rngd_rdrand.c b/rngd_rdrand.c +index ffb9e74..4529587 100644 +--- a/rngd_rdrand.c ++++ b/rngd_rdrand.c +@@ -246,7 +246,14 @@ int xread_drng(void *buf, size_t size, struct rng *ent_src) + if (ent_src->rng_options[DRNG_OPT_AES].int_val) + return xread_drng_with_aes(buf, size, ent_src); + +- x86_rdrand_bytes(buf, size); ++ /* NB: x86_rdrand_bytes might overrun end of buffer, if not a multiple of 8 */ ++ if (size > 7) ++ x86_rdrand_bytes(buf, (size&~7)); ++ if ((size&7) != 0) { ++ unsigned char tempbuf[8]; ++ x86_rdrand_bytes(tempbuf, (size&7)); ++ memcpy((unsigned char *)buf+(size&~7), tempbuf, (size&7)); ++ } + return 0; + } + +-- +1.8.3.1 + diff --git a/rng-tools.spec b/rng-tools.spec index b3c476f7a5327400014f2ad996f85b867ac9cfcf..644df275b826c93d8595c88d3663b8df00bb9c00 100644 --- a/rng-tools.spec +++ b/rng-tools.spec @@ -1,6 +1,6 @@ Name: rng-tools Version: 6.5 -Release: 2 +Release: 3 Summary: Random number generator daemon License: GPLv2+ URL: https://github.com/nhorman/rng-tools @@ -10,6 +10,7 @@ Source2: jitterentropy-library-2.2.0.tar.gz Patch0: jitterentropy-remove-install.patch Patch1: backport-Default-to-one-thread-if-getaffinity-returns-an-erro.patch +Patch2: backport-Obey-restrictions-on-x86_rdrand_bytes-usage.patch #Dependency BuildRequires: gcc make gettext systemd autoconf automake @@ -60,6 +61,9 @@ install -D -t $RPM_BUILD_ROOT%{_unitdir} -m 0644 %{SOURCE1} %{_mandir}/man8/rngd.8.* %changelog +* Sat Dec 19 2020 yangzhuangzhuang - 6.5-3 +- fix rngd.service coredump + * Thu Dec 10 2020 yangzhuangzhuang - 6.5-2 - fix rngd.service coredump