aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2024-03-25 10:41:00 +0000
committerPeter Maydell <peter.maydell@linaro.org>2024-03-25 10:41:00 +0000
commitc67f7580697198800c57ced59f1dfbce1aaeb4ae (patch)
tree1b779b63d1e90b3e4e8925add00ff781203dd7f7
parentbed150be5b94ee499384fa6d052c0cb398a20d95 (diff)
downloadqemu-c67f7580697198800c57ced59f1dfbce1aaeb4ae.zip
qemu-c67f7580697198800c57ced59f1dfbce1aaeb4ae.tar.gz
qemu-c67f7580697198800c57ced59f1dfbce1aaeb4ae.tar.bz2
hw/misc/pca9554: Correct error check bounds in get/set pin functions
In pca9554_get_pin() and pca9554_set_pin(), we try to detect an incorrect pin value, but we get the condition wrong, using ">" when ">=" was intended. This has no actual effect, because in pca9554_initfn() we use the correct test when creating the properties and so we'll never be called with an out of range value. However, Coverity complains about the mismatch between the check and the later use of the pin value in a shift operation. Use the correct condition. Resolves: Coverity CID 1534917 Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-id: 20240312183810.557768-5-peter.maydell@linaro.org
-rw-r--r--hw/misc/pca9554.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/misc/pca9554.c b/hw/misc/pca9554.c
index 778b32e..5e31696 100644
--- a/hw/misc/pca9554.c
+++ b/hw/misc/pca9554.c
@@ -160,7 +160,7 @@ static void pca9554_get_pin(Object *obj, Visitor *v, const char *name,
error_setg(errp, "%s: error reading %s", __func__, name);
return;
}
- if (pin < 0 || pin > PCA9554_PIN_COUNT) {
+ if (pin < 0 || pin >= PCA9554_PIN_COUNT) {
error_setg(errp, "%s invalid pin %s", __func__, name);
return;
}
@@ -187,7 +187,7 @@ static void pca9554_set_pin(Object *obj, Visitor *v, const char *name,
error_setg(errp, "%s: error reading %s", __func__, name);
return;
}
- if (pin < 0 || pin > PCA9554_PIN_COUNT) {
+ if (pin < 0 || pin >= PCA9554_PIN_COUNT) {
error_setg(errp, "%s invalid pin %s", __func__, name);
return;
}