Thread (7 messages) 7 messages, 3 authors, 2024-10-30

Re: [PATCH net] net: vertexcom: mse102x: Fix possible double free of TX skb

flat view

From: Jakub Kicinski <kuba@kernel.org>
Date: 2024-10-29 22:01:39
Also in: lkml, stable

On Tue, 29 Oct 2024 22:15:15 +0100 Stefan Wahren wrote:
quoted hunk ↗ jump to hunk
quoted
Isn't it easier to change this function to free the copy rather than
the original? That way the original will remain valid for the callers.  
You mean something like this?
diff --git a/drivers/net/ethernet/vertexcom/mse102x.c
b/drivers/net/ethernet/vertexcom/mse102x.c
index a04d4073def9..2c37957478fb 100644
--- a/drivers/net/ethernet/vertexcom/mse102x.c
+++ b/drivers/net/ethernet/vertexcom/mse102x.c
@@ -222,7 +222,7 @@ static int mse102x_tx_frame_spi(struct mse102x_net
*mse, struct sk_buff *txp,
      struct mse102x_net_spi *mses = to_mse102x_spi(mse);
      struct spi_transfer *xfer = &mses->spi_xfer;
      struct spi_message *msg = &mses->spi_msg;
-    struct sk_buff *tskb;
+    struct sk_buff *tskb = NULL;
      int ret;

      netif_dbg(mse, tx_queued, mse->ndev, "%s: skb %p, %d@%p\n",
@@ -235,7 +235,6 @@ static int mse102x_tx_frame_spi(struct mse102x_net
*mse, struct sk_buff *txp,
          if (!tskb)
              return -ENOMEM;

-        dev_kfree_skb(txp);
          txp = tskb;
      }
@@ -257,6 +256,8 @@ static int mse102x_tx_frame_spi(struct mse102x_net
*mse, struct sk_buff *txp,
          mse->stats.xfer_err++;
      }

+    dev_kfree_skb(tskb);
+
      return ret;
  }
Exactly, I think it would work and it feels simpler.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help