summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@chromium.org>2021-04-27 18:38:58 -0700
committerCommit Bot <commit-bot@chromium.org>2021-05-04 18:05:54 +0000
commit6dda009c8a6701d6ec9722ea4819adc7a91906bf (patch)
tree2a14812cac437515702c83a023e1d0f97e142f84
parent39c79ce3b71a5b864be0fcf02ec7d16306461857 (diff)
downloadchrome-ec-6dda009c8a6701d6ec9722ea4819adc7a91906bf.tar.gz
ps8xxx: Handle null pointers
This adds a null pointer check to prevent undefined behavior. Also, add check for board_get_ps8xxx_product_id() returning an error. BRANCH=none BUG=b:186189039 TEST=buildall passes Change-Id: I40f5836528e9beaabac27d39ef6dd25013b9302c Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2857795 Reviewed-by: Wai-Hong Tam <waihong@google.com> Commit-Queue: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2871049 Tested-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r--driver/tcpm/ps8xxx.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/driver/tcpm/ps8xxx.c b/driver/tcpm/ps8xxx.c
index 14581a346b..e435621b37 100644
--- a/driver/tcpm/ps8xxx.c
+++ b/driver/tcpm/ps8xxx.c
@@ -490,8 +490,16 @@ static int ps8xxx_get_chip_info(int port, int live,
if (rv != EC_SUCCESS)
return rv;
+ if (chip_info == NULL)
+ return EC_SUCCESS;
+
if (!live) {
- product_id[port] = board_get_ps8xxx_product_id(port);
+ uint16_t pid;
+
+ pid = board_get_ps8xxx_product_id(port);
+ if (pid == 0)
+ return EC_ERROR_UNKNOWN;
+ product_id[port] = pid;
chip_info->vendor_id = PS8XXX_VENDOR_ID;
chip_info->product_id = product_id[port];
}