summaryrefslogtreecommitdiff
path: root/lib/debugfs/dev.c
diff options
context:
space:
mode:
authorZelalem <zelalem.aweke@arm.com>2020-12-18 11:02:25 -0600
committerZelalem Aweke <zelalem.aweke@arm.com>2021-01-21 15:25:23 +0000
commitb226c74737090f5fca17656f43743b2c6ab766ca (patch)
tree280c376496c24aeb853fd1c603b21574d4686afe /lib/debugfs/dev.c
parentd194afa71b4f946603ec86fab2309533a76cbc95 (diff)
DebugFS: Check channel index before calling clone function
To avoid a potential out-of-bounds access, check whether a device exists on a channel before calling the corresponding clone function. Signed-off-by: Zelalem <zelalem.aweke@arm.com> Change-Id: Ia0dd66b331d3fa8a33109a02369e1bc9ae0fdd5b
Diffstat (limited to 'lib/debugfs/dev.c')
-rw-r--r--lib/debugfs/dev.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/debugfs/dev.c b/lib/debugfs/dev.c
index 0361437b8..2fc1d4062 100644
--- a/lib/debugfs/dev.c
+++ b/lib/debugfs/dev.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2021, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -333,6 +333,10 @@ noent:
******************************************************************************/
chan_t *clone(chan_t *c, chan_t *nc)
{
+ if (c->index == NODEV) {
+ return NULL;
+ }
+
return devtab[c->index]->clone(c, nc);
}