2017-12-22 10:29:54

by Steve Brown

[permalink] [raw]
Subject: [PATCH] mesh: meshctl: Correct display security

From: Steve Brown <[email protected]>

The case of a security command without an argument is not handled
and throws a segv.
---
mesh/main.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/mesh/main.c b/mesh/main.c
index 9360481f8..7e9763a00 100644
--- a/mesh/main.c
+++ b/mesh/main.c
@@ -1670,14 +1670,19 @@ static void cmd_security(int argc, char *argv[])
uint8_t level;
char *end;

+ if (argc == 1)
+ goto done;
+
level = strtol(argv[1], &end, 10);
if (end == argv[1] || !prov_set_sec_level(level)) {
bt_shell_printf("Invalid security level %s\n", argv[1]);
return;
}

- bt_shell_printf("Provision Security Level set to %u (%s)\n", level,
- security2str(level));
+done:
+ bt_shell_printf("Provision Security Level set to %u (%s)\n",
+ prov_get_sec_level(),
+ security2str(prov_get_sec_level()));
}

static void cmd_connect(int argc, char *argv[])
--
2.14.1



2017-12-25 19:06:31

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] mesh: meshctl: Correct display security

Hi Steve,

On Fri, Dec 22, 2017, [email protected] wrote:
> The case of a security command without an argument is not handled
> and throws a segv.
> ---
> mesh/main.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)

Applied. Thanks.

Johan