diff options
author | Randall Spangler <rspangler@chromium.org> | 2018-03-07 21:06:15 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-03-08 11:33:26 -0800 |
commit | 0bdb8713be40abfe963d9ef625dbb67961068840 (patch) | |
tree | dec4dee6c0e8727aac9b6d6fed175cc20ded206b | |
parent | 9cc0e31fb527b21e958f423ff739a2c4e915baff (diff) | |
download | vboot-0bdb8713be40abfe963d9ef625dbb67961068840.tar.gz |
crossystem: Fix null pointer dereference on VMs
Check the result of VbSharedDataRead() before dereferencing it.
BUG=chromium:789276,chromium:819695
BRANCH=none
TEST=make runtests
Change-Id: I1b1cc90bdc2fca61a9aad6b02e8b7e1f6a919797
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/954712
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
-rw-r--r-- | host/lib/crossystem.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c index 38c9ed6e..148e793e 100644 --- a/host/lib/crossystem.c +++ b/host/lib/crossystem.c @@ -104,7 +104,7 @@ int vb2_get_nv_storage(enum vb2_nv_param param) /* TODO: locking around NV access */ if (!vnc_read) { memset(&cached_ctx, 0, sizeof(cached_ctx)); - if (sh->flags & VBSD_NVDATA_V2) + if (sh && sh->flags & VBSD_NVDATA_V2) cached_ctx.flags |= VB2_CONTEXT_NVDATA_V2; if (0 != vb2_read_nv_storage(&cached_ctx)) return -1; @@ -126,7 +126,7 @@ int vb2_set_nv_storage(enum vb2_nv_param param, int value) /* TODO: locking around NV access */ memset(&ctx, 0, sizeof(ctx)); - if (sh->flags & VBSD_NVDATA_V2) + if (sh && sh->flags & VBSD_NVDATA_V2) ctx.flags |= VB2_CONTEXT_NVDATA_V2; if (0 != vb2_read_nv_storage(&ctx)) return -1; |