summaryrefslogtreecommitdiff
path: root/futility/file_type_rwsig.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2016-09-02 12:21:55 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-09-06 22:02:16 -0700
commit0efc4f3ee111d28cf22060a22ad591427dc7eb7f (patch)
tree57d1af3c399effad787e63ac8bdbbdcf4b780a1d /futility/file_type_rwsig.c
parent470b24816681dc1781e1b280980d9448d2c1af96 (diff)
downloadvboot-0efc4f3ee111d28cf22060a22ad591427dc7eb7f.tar.gz
futility: Fix lookup of invalid algorithm names
If given a malformed file with an invalid algorithm, futility could dereference null when looking up the algorithm names. BUG=chromium:643769 BRANCH=none TEST=make runtests Change-Id: I26d1312b8bf2eec8d806664708676daa9f36fa58 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/380522 Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Diffstat (limited to 'futility/file_type_rwsig.c')
-rw-r--r--futility/file_type_rwsig.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/futility/file_type_rwsig.c b/futility/file_type_rwsig.c
index c2d7fbf6..40669a6b 100644
--- a/futility/file_type_rwsig.c
+++ b/futility/file_type_rwsig.c
@@ -42,16 +42,13 @@ static inline void vb2_print_bytes(const void *ptr, uint32_t len)
static void show_sig(const char *name, const struct vb21_signature *sig)
{
- const struct vb2_text_vs_enum *entry;
printf("Signature: %s\n", name);
printf(" Vboot API: 2.1\n");
printf(" Desc: \"%s\"\n", vb21_common_desc(sig));
- entry = vb2_lookup_by_num(vb2_text_vs_sig, sig->sig_alg);
printf(" Signature Algorithm: %d %s\n", sig->sig_alg,
- entry ? entry->name : "(invalid)");
- entry = vb2_lookup_by_num(vb2_text_vs_hash, sig->hash_alg);
+ vb2_get_sig_algorithm_name(sig->sig_alg));
printf(" Hash Algorithm: %d %s\n", sig->hash_alg,
- entry ? entry->name : "(invalid)");
+ vb2_get_hash_algorithm_name(sig->hash_alg));
printf(" Total size: 0x%x (%d)\n", sig->c.total_size,
sig->c.total_size);
printf(" ID: ");