From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 236842E81; Wed, 23 Jan 2019 14:09:09 +0100 (CET) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 5D8F0BC0076; Wed, 23 Jan 2019 13:09:07 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 23 Jan 2019 05:09:04 -0800 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Wed, 23 Jan 2019 05:09:02 -0800 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id x0ND91GX004386; Wed, 23 Jan 2019 13:09:01 GMT Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 964CF163E78; Wed, 23 Jan 2019 13:09:01 +0000 (GMT) From: Andrew Rybchenko To: CC: Igor Romanov , Date: Wed, 23 Jan 2019 13:08:55 +0000 Message-ID: <1548248935-9906-1-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24384.005 X-TM-AS-Result: No-5.174300-4.000000-10 X-TMASE-MatchedRID: lWOCnflowZPYXIduuqWnV0hEDfw/93BuaIqWsHxNIOrEXelUnE6spZM5 rPAxB6p12ODcUJmtdLGhdpDVUZbj5tCjuUhsbmmkBV46O93nF5rljSRvSGpq3C//IXF63rQJ7/J GRZ8PgCe9A2hwM/Jqtma39PjWf0NNHxPMjOKY7A8LbigRnpKlKWxlRJiH4397CqmN2Md6DYnk1T n/e5Wlhd0wHFEHbkSf7rthRZ/ue6JH5A0C0P0Rmg== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--5.174300-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24384.005 X-MDID: 1548248948-sBmJ4WCdmU3P Subject: [dpdk-dev] [PATCH] net/sfc: fix NULL dereference in EF10 TSO if no payload X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2019 13:09:09 -0000 From: Igor Romanov Fixes: 6bc985e41155 ("net/sfc: support TSO in EF10 Tx datapath") Cc: stable@dpdk.org Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko --- There are a couple of warnings generated by checkpatches.sh which are OK since positive errors are used inside PMD (since positive error codes are used in base driver). drivers/net/sfc/sfc_ef10_tx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/sfc/sfc_ef10_tx.c b/drivers/net/sfc/sfc_ef10_tx.c index bcd3153ff..ff6d5b486 100644 --- a/drivers/net/sfc/sfc_ef10_tx.c +++ b/drivers/net/sfc/sfc_ef10_tx.c @@ -381,6 +381,9 @@ sfc_ef10_xmit_tso_pkt(struct sfc_ef10_txq * const txq, struct rte_mbuf *m_seg, hdr_addr = rte_pktmbuf_mtod(m_seg, uint8_t *); hdr_iova = rte_mbuf_data_iova(m_seg); if (rte_pktmbuf_data_len(m_seg) == header_len) { + /* Cannot send a packet that consists only of header */ + if (unlikely(m_seg->next == NULL)) + return EMSGSIZE; /* * Associate header mbuf with header descriptor * which is located after TSO descriptors. @@ -409,6 +412,10 @@ sfc_ef10_xmit_tso_pkt(struct sfc_ef10_txq * const txq, struct rte_mbuf *m_seg, copied_segs = sfc_tso_prepare_header(hdr_addr, header_len, &m_seg, &in_off); + /* Cannot send a packet that consists only of header */ + if (unlikely(m_seg == NULL)) + return EMSGSIZE; + m_seg_to_free_up_to = m_seg; /* * Reduce the number of needed descriptors by the number of -- 2.17.1