summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2018-03-07 21:06:15 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-03-08 11:33:26 -0800
commit0bdb8713be40abfe963d9ef625dbb67961068840 (patch)
treedec4dee6c0e8727aac9b6d6fed175cc20ded206b
parent9cc0e31fb527b21e958f423ff739a2c4e915baff (diff)
downloadvboot-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.c4
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;