Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net: openthread: rpc: Align input line buffer with openthread config #18852

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion subsys/net/openthread/rpc/server/ot_rpc_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,14 @@ NRF_RPC_CBOR_CMD_DECODER(ot_group, ot_rpc_cmd_cli_init, OT_RPC_CMD_CLI_INIT, ot_
static void ot_rpc_cmd_cli_input_line(const struct nrf_rpc_group *group,
struct nrf_rpc_cbor_ctx *ctx, void *handler_data)
{
char input_line_buffer[256];
struct nrf_rpc_cbor_ctx rsp_ctx;
char *result;

#if CONFIG_OPENTHREAD_CLI_MAX_LINE_LENGTH > 256
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't it be allocated from heap instead?
This fix seems like we want to avoid memory misconfiguration.
@Damian-Nordic, opinions?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be cleaner to use a single solution regardless of the configured max line length. Using malloc may be a better option not to increase the static RAM usage (we don't have so much unused RAM on nRF54L in this project). There's another option to just add a null-terminator in the received packet and not copy anything but this would require removing the usage of nrf_rpc_decode_str and perhaps adding another helper, so we can now stick to malloc and optimize it later.

static
#endif
char input_line_buffer[CONFIG_OPENTHREAD_CLI_MAX_LINE_LENGTH - 1];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why -1 and not +1?


/* Parse the input */
result = nrf_rpc_decode_str(ctx, input_line_buffer, sizeof(input_line_buffer));

Expand Down
Loading