From: Markus Elfring Date: Tue, 15 Sep 2026 10:48:11 +0200 Use an additional label so that a bit of exception handling can be better reused at the end of this function implementation. Signed-off-by: Markus Elfring --- v2: The application of a known source code transformation pattern could be repeated after the commit 8aaeb56aff2a557a88f83ae866da2c91ad247e59 ("ppp_synctty: ensure a writeable skb header") was integrated. drivers/net/ppp/ppp_synctty.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ppp/ppp_synctty.c b/drivers/net/ppp/ppp_synctty.c index ebd62a7ab54b..9e440e110e9f 100644 --- a/drivers/net/ppp/ppp_synctty.c +++ b/drivers/net/ppp/ppp_synctty.c @@ -436,10 +436,9 @@ ppp_sync_txmunge(struct syncppp *ap, struct sk_buff *skb) int islcp; /* Ensure we can safely access protocol field and LCP code */ - if (!pskb_may_pull(skb, 3)) { - kfree_skb(skb); - return NULL; - } + if (!pskb_may_pull(skb, 3)) + goto free_skb; + data = skb->data; proto = get_unaligned_be16(data); @@ -455,10 +454,9 @@ ppp_sync_txmunge(struct syncppp *ap, struct sk_buff *skb) /* prepend address/control fields if necessary */ if ((ap->flags & SC_COMP_AC) == 0 || islcp) { - if (skb_cow_head(skb, 2)) { - kfree_skb(skb); - return NULL; - } + if (skb_cow_head(skb, 2)) + goto free_skb; + skb_push(skb,2); skb->data[0] = PPP_ALLSTATIONS; skb->data[1] = PPP_UI; @@ -470,6 +468,10 @@ ppp_sync_txmunge(struct syncppp *ap, struct sk_buff *skb) ppp_print_buffer ("send buffer", skb->data, skb->len); return skb; + +free_skb: + kfree_skb(skb); + return NULL; } /* base-commit: 8aaeb56aff2a557a88f83ae866da2c91ad247e59 -- 2.55.0