Re: [PATCH BlueZ] mesh: validate configuration target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Inga,

On Tue, Nov 21, 2017 at 9:08 AM, Inga Stotland <inga.stotland@xxxxxxxxx> wrote:
> Require obtaining node composition prior to sending configuration
> commands that assume knowledge about the node's element/model layout.
> ---
>  mesh/config-client.c | 31 +++++++++++++++++++++++++------
>  1 file changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/mesh/config-client.c b/mesh/config-client.c
> index d80f784e6..782781602 100644
> --- a/mesh/config-client.c
> +++ b/mesh/config-client.c
> @@ -461,16 +461,37 @@ static void cmd_del_app_key(const char *args)
>         cmd_app_key(args, OP_APPKEY_DELETE);
>  }
>
> +static bool verify_config_target(uint32_t dst)
> +{
> +       struct mesh_node *node;
> +
> +       if (IS_UNASSIGNED(dst)) {
> +               rl_printf("Destination not set\n");
> +               return false;
> +       }
> +
> +       node = node_find_by_addr(dst);
> +       if (!node) {
> +               rl_printf("Node with unicast address %4.4x unknown\n", dst);
> +               return false;
> +       }
> +
> +       if (!node_get_composition(node)) {
> +               rl_printf("Node composition for %4.4x unknown\n", dst);
> +               return false;
> +       }
> +
> +       return true;
> +}
> +
>  static void cmd_bind(const char *args)
>  {
>         uint16_t n;
>         uint8_t msg[32];
>         int parm_cnt;
>
> -       if (IS_UNASSIGNED(target)) {
> -               rl_printf("Destination not set\n");
> +       if (!verify_config_target(target))
>                 return;
> -       }
>
>         parm_cnt = read_input_parameters(args);
>         if (parm_cnt != 3 && parm_cnt != 4) {
> @@ -529,10 +550,8 @@ static void cmd_set_pub(const char *args)
>         uint8_t msg[32];
>         int parm_cnt;
>
> -       if (IS_UNASSIGNED(target)) {
> -               rl_printf("Destination not set\n");
> +       if (!verify_config_target(target))
>                 return;
> -       }
>
>         n = mesh_opcode_set(OP_CONFIG_MODEL_PUB_SET, msg);
>
> --
> 2.13.6

Applied, thanks.

-- 
Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux