]> err.no Git - linux-2.6/commitdiff
[PATCH] SKB leak in drivers/isdn/i4l/isdn_x25iface.c
authorEric Sesterhenn <snakebyte@gmx.de>
Thu, 29 Jun 2006 09:24:34 +0000 (02:24 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 29 Jun 2006 17:26:21 +0000 (10:26 -0700)
Coverity spotted this leak (id #613), when we are not configured, we return
without freeing the allocated skb.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/isdn/i4l/isdn_x25iface.c

index 743ac4077f35b24b17af0b08fc5a23dce9b0733f..8b3efc243161a201fd8029d5d43900371c48b2b5 100644 (file)
@@ -208,7 +208,7 @@ static int isdn_x25iface_receive(struct concap_proto *cprot, struct sk_buff *skb
  */
 static int isdn_x25iface_connect_ind(struct concap_proto *cprot)
 {
-       struct sk_buff * skb = dev_alloc_skb(1);
+       struct sk_buff * skb;
        enum wan_states *state_p 
          = &( ( (ix25_pdata_t*) (cprot->proto_data) ) -> state);
        IX25DEBUG( "isdn_x25iface_connect_ind %s \n"
@@ -220,6 +220,8 @@ static int isdn_x25iface_connect_ind(struct concap_proto *cprot)
                return -1;
        }
        *state_p = WAN_CONNECTED;
+
+       skb = dev_alloc_skb(1);
        if( skb ){
                *( skb_put(skb, 1) ) = 0x01;
                skb->protocol = x25_type_trans(skb, cprot->net_dev);