diff options
author | Caveh Jalali <caveh@chromium.org> | 2021-04-27 18:38:58 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-05-04 18:05:54 +0000 |
commit | 6dda009c8a6701d6ec9722ea4819adc7a91906bf (patch) | |
tree | 2a14812cac437515702c83a023e1d0f97e142f84 | |
parent | 39c79ce3b71a5b864be0fcf02ec7d16306461857 (diff) | |
download | chrome-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.c | 10 |
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]; } |