summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos López <[email protected]>2024-08-01 14:27:42 +0200
committerAnup Patel <[email protected]>2024-08-02 08:45:05 +0530
commitd2353c9e227a3dfedc0f46b0006ded35846d7171 (patch)
treed920c6921d7c7e1c7891f57fde4bf6a5e9f5fe0c
parentdf997c6e55fe5940fd035097e6ecb5612aa95b4b (diff)
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 <[email protected]> Reviewed-By: Anup Patel <[email protected]>
-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);