https://bugs.dpdk.org/show_bug.cgi?id=2037
Bug ID: 2037
Summary: net/intel/ice: parse_bool clobbers adjacent devargs
fields
Product: DPDK
Version: 26.11
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
drivers/net/intel/ice/ice_ethdev.c:2144, ice_ethdev.h:624
parse_bool() stores an int:
static int
parse_bool(const char *key, const char *value, void *args)
{
int *i = args;
...
*i = (value[0] == '1');
Three of its five callers pass the address of a uint8_t in struct
ice_devargs:
struct ice_devargs {
int rx_low_latency;
int safe_mode_support;
uint8_t proto_xtr_dflt;
uint8_t default_mac_disable; <- 4 byte store
uint8_t proto_xtr[ICE_MAX_QUEUE_NUM];
uint8_t pin_idx;
uint8_t pps_out_ena;
uint8_t ddp_load_sched; <- 4 byte store
uint8_t tm_exposed_levels;
uint8_t source_prune; <- 4 byte store
uint32_t rl_burst_size;
...
"default-mac-disable" is the notable one: the three bytes past it land in
proto_xtr[], which ice_parse_devargs() has just memset to PROTO_XTR_NONE a
few lines earlier, so the protocol extraction configuration is silently
altered. ddp_load_sched overruns into tm_exposed_levels/source_prune, and
source_prune into rl_burst_size.
Fixes: 66214b547c65 ("net/ice: add option to disable default MAC")
--
You are receiving this mail because:
You are the assignee for the bug.