The source and destination both are the arrays of cmdline_parse_ctx_t.
So the goal is to copy elements size of cmdline_parse_ctx_t not
cmdline_parse_ctx_t*.
CID 120412: Code maintainability issues (SIZEOF_MISMATCH)
Passing argument "&app->cmds[app->n_cmds]" of type "cmdline_parse_ctx_t *"
and argument "n_cmds * 8UL /* sizeof (cmdline_parse_ctx_t *) */"
to function "memcpy" is suspicious.
In this case, "sizeof (cmdline_parse_ctx_t *)" is equal to
"sizeof (cmdline_parse_ctx_t)", but this is not a portable assumption.
Coverity issue: 120412
Fixes:
b4aee0fb9c6d ("examples/ip_pipeline: reconfigure thread binding dynamically")
Fixes:
ea0908c4ab89 ("examples/ip_pipeline: add master pipeline")
Fixes:
eb32fe7c5574 ("examples/ip_pipeline: rework initialization parameters")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
/* Push pipeline commands into the application */
memcpy(&app->cmds[app->n_cmds],
cmds,
- n_cmds * sizeof(cmdline_parse_ctx_t *));
+ n_cmds * sizeof(cmdline_parse_ctx_t));
for (i = 0; i < n_cmds; i++)
app->cmds[app->n_cmds + i]->data = app;
/* Push pipeline commands into the application */
memcpy(&app->cmds[app->n_cmds],
pipeline_common_cmds,
- n_cmds * sizeof(cmdline_parse_ctx_t *));
+ n_cmds * sizeof(cmdline_parse_ctx_t));
for (i = 0; i < n_cmds; i++)
app->cmds[app->n_cmds + i]->data = app;
return -ENOMEM;
/* Push thread commands into the application */
- memcpy(&app->cmds[app->n_cmds],
- thread_cmds,
- n_cmds * sizeof(cmdline_parse_ctx_t *));
+ memcpy(&app->cmds[app->n_cmds], thread_cmds,
+ n_cmds * sizeof(cmdline_parse_ctx_t));
for (i = 0; i < n_cmds; i++)
app->cmds[app->n_cmds + i]->data = app;