eal: fix mempool ops name parsing
The code aimed to pick and remember the value of
mempool ops name from EAL command line arguments does not
copy the string and remembers the pointer provided
by getopt_long() directly. The latter could be clobbered
later and result in reading wrong mbuf pool ops name
by rte_mempool library.
Typically, this flaw could be avoided by using strdup()
to remember the string value of the option.
Fixes: a103a97e71
("eal: allow user to override default mempool driver")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
This commit is contained in:
parent
7d3c4fb6de
commit
33b3181791
@ -380,7 +380,8 @@ eal_parse_args(int argc, char **argv)
|
||||
|
||||
switch (opt) {
|
||||
case OPT_MBUF_POOL_OPS_NAME_NUM:
|
||||
internal_config.user_mbuf_pool_ops_name = optarg;
|
||||
internal_config.user_mbuf_pool_ops_name =
|
||||
strdup(optarg);
|
||||
break;
|
||||
case 'h':
|
||||
eal_usage(prgname);
|
||||
|
@ -593,7 +593,8 @@ eal_parse_args(int argc, char **argv)
|
||||
break;
|
||||
|
||||
case OPT_MBUF_POOL_OPS_NAME_NUM:
|
||||
internal_config.user_mbuf_pool_ops_name = optarg;
|
||||
internal_config.user_mbuf_pool_ops_name =
|
||||
strdup(optarg);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user