Module Name: src Committed By: khorben Date: Tue May 4 21:10:25 UTC 2021
Modified Files: src/sys/arch/amd64/stand/prekern: prng.c Log Message: prekern: do not choke on bad entropy files As submitted on port-amd64@ (part 2/3) Tested on NetBSD/amd64. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/amd64/stand/prekern/prng.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/stand/prekern/prng.c diff -u src/sys/arch/amd64/stand/prekern/prng.c:1.3 src/sys/arch/amd64/stand/prekern/prng.c:1.4 --- src/sys/arch/amd64/stand/prekern/prng.c:1.3 Thu May 21 08:20:25 2020 +++ src/sys/arch/amd64/stand/prekern/prng.c Tue May 4 21:10:25 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: prng.c,v 1.3 2020/05/21 08:20:25 maxv Exp $ */ +/* $NetBSD: prng.c,v 1.4 2021/05/04 21:10:25 khorben Exp $ */ /* * Copyright (c) 2017-2020 The NetBSD Foundation, Inc. All rights reserved. @@ -98,7 +98,9 @@ prng_get_entropy_file(SHA512_CTX *ctx) continue; } if (bi->len != sizeof(rndsave_t)) { - fatal("rndsave_t size mismatch"); + print_state(STATE_WARNING, + "size mismatch in entropy file"); + continue; } rndsave = (rndsave_t *)(vaddr_t)bi->base; @@ -109,7 +111,9 @@ prng_get_entropy_file(SHA512_CTX *ctx) SHA1Update(&sig, rndsave->data, sizeof(rndsave->data)); SHA1Final(digest, &sig); if (memcmp(digest, rndsave->digest, sizeof(digest))) { - fatal("bad SHA1 checksum"); + print_state(STATE_WARNING, + "bad SHA1 checksum in entropy file"); + continue; } SHA512_Update(ctx, rndsave->data, sizeof(rndsave->data));