]> git.droids-corp.org - dpdk.git/commitdiff
eventdev/eth_tx: fix adapter creation
authorNaga Harish K S V <s.v.naga.harish.k@intel.com>
Thu, 16 Jun 2022 05:14:58 +0000 (10:44 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 20 Jun 2022 18:39:11 +0000 (20:39 +0200)
During adapter create, memory is allocated for storing event port
configuration which is freed during adapter free. The following
error is seen during free "EAL: Error: Invalid memory"

The service data pointer storage for txa_service_data_array is
allocated during adapter create with incorrect size which is less
than the required size.
Initialization of this memory causes buffer overflow and result in
metadata overwrite of event port config memory allocated above
and results in the above error message during free.

Allocating the correct size of memory for txa_service_data_array
prevents overwriting other memory areas like event port config
memory.

Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation")
Cc: stable@dpdk.org
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
lib/eventdev/rte_event_eth_tx_adapter.c

index 1b304f0a73d6b9146cfc92f603f7ce3b2884225c..c700fb7b1f6f526d6b622cdddd4f6a5740ebc027 100644 (file)
@@ -224,7 +224,7 @@ txa_service_data_init(void)
        if (txa_service_data_array == NULL) {
                txa_service_data_array =
                                txa_memzone_array_get("txa_service_data_array",
-                                       sizeof(int),
+                                       sizeof(*txa_service_data_array),
                                        RTE_EVENT_ETH_TX_ADAPTER_MAX_INSTANCE);
                if (txa_service_data_array == NULL)
                        return -ENOMEM;