summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/rng-tools
diff options
context:
space:
mode:
authorJoe Slater <joe.slater@windriver.com>2018-01-25 12:44:49 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-02-06 10:54:35 +0000
commit23cf9be2065d6ea01f6d10cbed64a590c31e5bfc (patch)
tree927d8a65427b7047ef7d6500ec11e3414618ea94 /meta/recipes-support/rng-tools
parented1598d08e53c92a5df286de518a9b355ee50f59 (diff)
downloadopenembedded-core-23cf9be2065d6ea01f6d10cbed64a590c31e5bfc.tar.gz
openembedded-core-23cf9be2065d6ea01f6d10cbed64a590c31e5bfc.tar.bz2
openembedded-core-23cf9be2065d6ea01f6d10cbed64a590c31e5bfc.zip
rng-tools: modify 'read error' message
Expand messages output if entropy data cannot be read. Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/recipes-support/rng-tools')
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/read_error_msg.patch98
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_5.bb1
2 files changed, 99 insertions, 0 deletions
diff --git a/meta/recipes-support/rng-tools/rng-tools/read_error_msg.patch b/meta/recipes-support/rng-tools/rng-tools/read_error_msg.patch
new file mode 100644
index 0000000000..8aa13bf8b8
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/read_error_msg.patch
@@ -0,0 +1,98 @@
+rng-tools: modify 'read error' message
+
+Make the 'read error' message more descriptive.
+
+Copied from https://bugzilla.redhat.com/attachment.cgi?id=1295857
+and modified in one place to apply successfully. Error message during
+bootstrap modified to show device name.
+
+Upstream-Status: pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+--- a/rngd.c
++++ b/rngd.c
+@@ -247,8 +247,11 @@ static void do_loop(int random_step)
+ continue; /* failed, no work */
+
+ retval = iter->xread(buf, sizeof buf, iter);
+- if (retval)
++ if (retval) {
++ message(LOG_DAEMON|LOG_ERR,
++ "Error reading from entropy source\n");
+ continue; /* failed, no work */
++ }
+
+ work_done = true;
+
+--- a/rngd_entsource.c
++++ b/rngd_entsource.c
+@@ -63,10 +63,8 @@ int xread(void *buf, size_t size, struct
+ size -= r;
+ }
+
+- if (size) {
+- message(LOG_DAEMON|LOG_ERR, "read error\n");
++ if (size)
+ return -1;
+- }
+ return 0;
+ }
+
+@@ -152,7 +150,7 @@ error_out:
+ }
+
+ /* Initialize entropy source */
+-static int discard_initial_data(struct rng *ent_src)
++static int discard_initial_data(struct rng *ent_src, int *buf)
+ {
+ /* Trash 32 bits of what is probably stale (non-random)
+ * initial state from the RNG. For Intel's, 8 bits would
+@@ -164,10 +162,12 @@ static int discard_initial_data(struct r
+ xread(tempbuf, sizeof(tempbuf), ent_src);
+
+ /* Return 32 bits of bootstrap data */
+- xread(tempbuf, sizeof(tempbuf), ent_src);
++ if (xread(tempbuf, sizeof(tempbuf), ent_src) != 0)
++ return -1;
+
+- return tempbuf[0] | (tempbuf[1] << 8) |
++ *buf = tempbuf[0] | (tempbuf[1] << 8) |
+ (tempbuf[2] << 16) | (tempbuf[3] << 24);
++ return 0;
+ }
+
+ /*
+@@ -175,6 +175,8 @@ static int discard_initial_data(struct r
+ */
+ int init_entropy_source(struct rng *ent_src)
+ {
++ int bootstrap;
++
+ ent_src->rng_fd = open(ent_src->rng_name, O_RDONLY);
+ if (ent_src->rng_fd == -1) {
+ return 1;
+@@ -182,7 +184,11 @@ int init_entropy_source(struct rng *ent_
+ src_list_add(ent_src);
+ /* Bootstrap FIPS tests */
+ ent_src->fipsctx = malloc(sizeof(fips_ctx_t));
+- fips_init(ent_src->fipsctx, discard_initial_data(ent_src));
++ if (discard_initial_data(ent_src, &bootstrap) != 0) {
++ message(LOG_ERR|LOG_INFO, "Read failure in %s during bootstrap\n",ent_src->rng_name);
++ return 1;
++ }
++ fips_init(ent_src->fipsctx, bootstrap);
+ return 0;
+ }
+
+--- a/rngtest.c
++++ b/rngtest.c
+@@ -335,6 +335,7 @@ static int discard_initial_data(void)
+
+ return tempbuf[0] | (tempbuf[1] << 8) |
+ (tempbuf[2] << 16) | (tempbuf[3] << 24);
++
+ }
+
+ static void do_rng_fips_test_loop( void )
diff --git a/meta/recipes-support/rng-tools/rng-tools_5.bb b/meta/recipes-support/rng-tools/rng-tools_5.bb
index 4a66bed643..b3c9fd9745 100644
--- a/meta/recipes-support/rng-tools/rng-tools_5.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_5.bb
@@ -7,6 +7,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/gkernel/${BP}.tar.gz \
file://0002-Add-argument-to-control-the-libargp-dependency.patch \
file://underquote.patch \
file://rng-tools-5-fix-textrels-on-PIC-x86.patch \
+ file://read_error_msg.patch \
file://init \
file://default \
file://rngd.service \