30 lines
955 B
Diff
30 lines
955 B
Diff
|
From 94c8277dd8fbd2193cb3804c304e965c9238951d Mon Sep 17 00:00:00 2001
|
||
|
From: Ondrej Mosnacek <omosnace@redhat.com>
|
||
|
Date: Wed, 11 Jul 2018 14:41:14 +0200
|
||
|
Subject: [PATCH] kcapi-hasher: Fix off-by-one error
|
||
|
|
||
|
There was an off-by-one error in process_checkfile() that caused the
|
||
|
hasher to misparse checkfiles that contain only the hash (for
|
||
|
self-check).
|
||
|
---
|
||
|
apps/kcapi-hasher.c | 5 ++++-
|
||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/apps/kcapi-hasher.c b/apps/kcapi-hasher.c
|
||
|
index ae88211..00f0373 100644
|
||
|
--- a/apps/kcapi-hasher.c
|
||
|
+++ b/apps/kcapi-hasher.c
|
||
|
@@ -514,8 +514,11 @@ static int process_checkfile(const struct hash_params *params,
|
||
|
uint32_t i;
|
||
|
uint32_t bsd_style = 0; // >0 if --tag formatted style
|
||
|
|
||
|
+ if (linelen == 0)
|
||
|
+ break;
|
||
|
+
|
||
|
/* remove trailing CR and reduce buffer length */
|
||
|
- for (i = linelen; i > 0; i--) {
|
||
|
+ for (i = linelen - 1; i > 0; i--) {
|
||
|
if (!isprint(buf[i])) {
|
||
|
buf[i] = '\0';
|
||
|
linelen--;
|