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

            Bug ID: 2039
           Summary: net/vhost: open_int writes two bytes into seven int
                    callers
           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/vhost/rte_eth_vhost.c:1589

        static int
        open_int(const char *key __rte_unused, const char *value, void
*extra_args)
        {
                uint16_t *n = extra_args;
                ...
                *n = (uint16_t)strtoul(value, NULL, 0);

Eight callers; only "queues" passes a uint16_t. The other seven -- client,
iommu-support, postcopy-support, tso, linear-buffer, ext-buffer and
legacy-ol-flags -- pass the address of an int, so only two of four bytes
are written. Works on little endian because each local is zeroed first,
wrong on big endian.

Fixes: 39cac2adcad0 ("net/vhost: add client option")

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to