mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 15:32:13 +02:00
rng-tools: modify 'read error' message
Expand messages output if entropy data cannot be read. (From OE-Core rev: 23cf9be2065d6ea01f6d10cbed64a590c31e5bfc) Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
1d22ecc138
commit
5f0c4c785d
@@ -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 )
|
||||
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user