summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-05-07 09:39:50 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2019-05-15 20:10:07 +0000
commitbfd4429563745cbf4d82014a3395b55de287a080 (patch)
tree432f34d5ddb535fff3efcc8c7f4fe7290fd05f4a
parent9e1f0ffe6b7e8b063e9f85d588c95642077db779 (diff)
downloadchrome-ec-bfd4429563745cbf4d82014a3395b55de287a080.tar.gz
USB-PD: Fix null-pointer dereference for svdm_rsp.amode
This patch fixes null-pointer dereference for svdm_rsp.amode. Some boards set svdm_rsp.amode to NULL. This patch will make TCPM on those boards return NACK instead of crash. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/131128234 BRANCH=none TEST=buildall Change-Id: Ifdeacbe4e164c5f1f7679ed4bb19a91053936ac6 Reviewed-on: https://chromium-review.googlesource.com/1599729 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> (cherry picked from commit 2bef7af80941cc793c0bf864d149233a470dc179) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1612606 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--common/usb_pd_policy.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/common/usb_pd_policy.c b/common/usb_pd_policy.c
index 9d2b374259..979ffa2603 100644
--- a/common/usb_pd_policy.c
+++ b/common/usb_pd_policy.c
@@ -687,10 +687,12 @@ int pd_svdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload)
func = svdm_rsp.enter_mode;
break;
case CMD_DP_STATUS:
- func = svdm_rsp.amode->status;
+ if (svdm_rsp.amode)
+ func = svdm_rsp.amode->status;
break;
case CMD_DP_CONFIG:
- func = svdm_rsp.amode->config;
+ if (svdm_rsp.amode)
+ func = svdm_rsp.amode->config;
break;
case CMD_EXIT_MODE:
func = svdm_rsp.exit_mode;