summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2019-08-27 16:12:19 +0200
committerCommit Bot <commit-bot@chromium.org>2019-08-28 08:45:08 +0000
commit9380ae9ffe98639058c487821a90cbe3bde614f2 (patch)
tree2fc8a0a3d5a8cc54386d25ce83b8057edc76d945
parentcd2de3fc71ecfe098a9bf11f9832f1644cfcb324 (diff)
downloadchrome-ec-9380ae9ffe98639058c487821a90cbe3bde614f2.tar.gz
common/i2c_master: don't bitshift negatively
That's undefined behavior. Found by Coverity Scan. BUG=none BRANCH=none TEST=none Change-Id: I85927adeee91ccf06a9651f0279999391b2a5e69 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1768651 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
-rw-r--r--common/i2c_master.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/common/i2c_master.c b/common/i2c_master.c
index d5eeaab04b..956de25d3e 100644
--- a/common/i2c_master.c
+++ b/common/i2c_master.c
@@ -53,6 +53,10 @@ static int i2c_port_is_locked(int port)
/* Test the controller, not the port */
port = i2c_port_to_controller(port);
#endif
+ /* can't lock a non-existing port */
+ if (port < 0)
+ return 0;
+
return (i2c_port_active_list >> port) & 1;
}