summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos López <carlos.lopezr4096@gmail.com>2024-08-01 14:27:42 +0200
committerAnup Patel <anup@brainfault.org>2024-08-02 08:53:19 +0530
commitbaf6a75e3f967aa8b65a20963bd9ae21975ba75a (patch)
treedcf5c2933d0535dec9a4d5618b4aea3f3df9025e
parent778949eeb8f36e01c37cb3ae6d82b0660a1bf6f7 (diff)
downloadopensbi-baf6a75e3f967aa8b65a20963bd9ae21975ba75a.tar.gz
opensbi-baf6a75e3f967aa8b65a20963bd9ae21975ba75a.zip
lib: sbi: dbtr: fix potential NULL pointer dereferences
In several dbtr functions, we first check that the dbtr trigger is not NULL and that its state is what we expect. However, it only makes sense to perform the second check if the dbtr trigger is not NULL. Othwerwise we will dereference a NULL pointer. Thus, change the condition so that it shortcuts to the first check if necessary. Signed-off-by: Carlos López <carlos.lopezr4096@gmail.com> Reviewed-By: Anup Patel <anup@brainfault.org>
-rw-r--r--lib/sbi/sbi_dbtr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/sbi/sbi_dbtr.c b/lib/sbi/sbi_dbtr.c
index 6e2083ed..27a8b918 100644
--- a/lib/sbi/sbi_dbtr.c
+++ b/lib/sbi/sbi_dbtr.c
@@ -357,7 +357,7 @@ static void dbtr_trigger_enable(struct sbi_dbtr_trigger *trig)
unsigned long state;
unsigned long tdata1;
- if (!trig && !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
+ if (!trig || !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
return;
state = trig->state;
@@ -403,7 +403,7 @@ static void dbtr_trigger_disable(struct sbi_dbtr_trigger *trig)
{
unsigned long tdata1;
- if (!trig && !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
+ if (!trig || !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
return;
tdata1 = trig->tdata1;
@@ -429,7 +429,7 @@ static void dbtr_trigger_disable(struct sbi_dbtr_trigger *trig)
static void dbtr_trigger_clear(struct sbi_dbtr_trigger *trig)
{
- if (!trig && !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
+ if (!trig || !(trig->state & RV_DBTR_BIT_MASK(TS, MAPPED)))
return;
csr_write(CSR_TSELECT, trig->index);