Skip to contentSkip to conversation

net/intel/ice: parse_bool clobbers adjacent devargs fields

DPDK/ethdev Bug 2037 [email protected] 1 participant 2 messages Sep 13 – Sep 15

lore
Share & tools
lore
#0 lore raw

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")
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=2037

Anurag Mandal ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

         Resolution|---                         |FIXED
           Assignee|[email protected]     |[email protected]
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #1 from Anurag Mandal ([email protected]) --- Addressed in Patch:
https://patches.dpdk.org/project/dpdk/patch/[email protected]/

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.