]> code.ossystems Code Review - openembedded-core.git/blob
458c0cc84e5f7ff0a7e9f1c0d97d4b8dc9a2564d
[openembedded-core.git] /
1 From b0426e63c9ac61657e029f689bcb8dd051e752c6 Mon Sep 17 00:00:00 2001
2 From: Sergey Popovich <popovich_sergei@mail.ua>
3 Date: Fri, 21 Apr 2017 07:32:23 -0700
4 Subject: [PATCH] update: Compare computed vs expected sha256 digit string
5  ignoring case
6
7 We produce sha256 digest string using %x snprintf()
8 qualifier for each byte of digest which uses alphabetic
9 characters from "a" to "f" in lower case to represent
10 integer values from 10 to 15.
11
12 Previously all of the NVD META files supply sha256
13 digest string for corresponding XML file in lower case.
14
15 However due to some reason this changed recently to
16 provide digest digits in upper case causing fetched
17 data consistency checks to fail. This prevents database
18 from being updated periodically.
19
20 While commit c4f6e94 (update: Do not treat sha256 failure
21 as fatal if requested) adds useful option to skip
22 digest validation at all and thus provides workaround for
23 this situation, it might be unacceptable for some
24 deployments where we need to ensure that downloaded
25 data is consistent before start parsing it and update
26 SQLite database.
27
28 Use strcasecmp() to compare two digest strings case
29 insensitively and addressing this case.
30
31 Upstream-Status: Backport
32 Signed-off-by: Sergey Popovich <popovich_sergei@mail.ua>
33 ---
34  src/update.c | 2 +-
35  1 file changed, 1 insertion(+), 1 deletion(-)
36
37 diff --git a/src/update.c b/src/update.c
38 index 8588f38..3cc6b67 100644
39 --- a/src/update.c
40 +++ b/src/update.c
41 @@ -187,7 +187,7 @@ static bool nvdcve_data_ok(const char *meta, const char *data)
42                  snprintf(&csum_data[idx], len, "%02hhx", digest[i]);
43          }
44  
45 -        ret = streq(csum_meta, csum_data);
46 +        ret = !strcasecmp(csum_meta, csum_data);
47  
48  err_unmap:
49          munmap(buffer, length);
50 -- 
51 2.11.0
52