Skip to contentSkip to conversation

TAPPMD frees buffers it fails to send

dpdk-dev [email protected] 1 participant 1 message Sep 16, 2019

lore
Share & tools
lore
#0 lore raw

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

            Bug ID: 347
           Summary: TAPPMD frees buffers it fails to send
           Product: DPDK
           Version: 19.08
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

static uint16_t
pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) .
.

                tap_write_mbufs(txq, num_mbufs, mbuf,
                                &num_packets, &num_tx_bytes);
                num_tx++;
                /* free original mbuf */
                rte_pktmbuf_free(mbuf_in);

.
.

If tap_write_mbufs fails to send packets ( i.e. num_packets < num_mbufs )

In my situation I'm sending exactly one packet and it fails to send, num_packets is passed out as zero, pmd_tx_burst frees the original buffer and returns 1 back.

I then free the buffer because tx_burst returned zero, and this returns in a double free.

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