[BlueZ v2 05/20] client/main: Fix array access

Bastien Nocera
2024-05-10T12:14:04Z

Error: CPPCHECK_WARNING (CWE-788): [#def36]
bluez-5.75/client/main.c:833: error[ctuArrayIndex]: Array index out of bounds; 'argv' buffer size is 0 and it is accessed at offset 1.
831| const char **opt;
832|
833|-> if (!strcmp(argv[1], "help")) {
834| for (opt = arg_table; opt && *opt; opt++)
835| bt_shell_printf("%s\n", *opt);
---
client/main.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/client/main.c b/client/main.c
index 51d08a67aa1a..f703cc91b24a 100644
--- a/client/main.c
+++ b/client/main.c
@@ -830,6 +830,11 @@ static gboolean parse_argument(int argc, char *argv[], const char **arg_table,
{
const char **opt;

+ if (argc < 2) {
+ bt_shell_printf("Missing argument to %s\n", argv[0]);
+ return FALSE;
+ }
+
if (!strcmp(argv[1], "help")) {
for (opt = arg_table; opt && *opt; opt++)
bt_shell_printf("%s\n", *opt);
--
2.44.0