linux/net
Julia Lawall 76975f8a31 [X25]: Add missing x25_neigh_put
The function x25_get_neigh increments a reference count.  At the point of
the second goto out, the result of calling x25_get_neigh is only stored in
a local variable, and thus no one outside the function will be able to
decrease the reference count.  Thus, x25_neigh_put should be called before
the return in this case.

The problem was found using the following semantic match.
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>

@@
type T,T1,T2;
identifier E;
statement S;
expression x1,x2,x3;
int ret;
@@

  T E;
  ...
* if ((E = x25_get_neigh(...)) == NULL)
  S
  ... when != x25_neigh_put(...,(T1)E,...)
      when != if (E != NULL) { ... x25_neigh_put(...,(T1)E,...); ...}
      when != x1 = (T1)E
      when != E = x3;
      when any
  if (...) {
    ... when != x25_neigh_put(...,(T2)E,...)
        when != if (E != NULL) { ... x25_neigh_put(...,(T2)E,...); ...}
        when != x2 = (T2)E
(
*   return;
|
*   return ret;
)
  }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-04 00:47:02 -08:00
..
9p 9p: add missing end-of-options record for trans_fd 2007-11-06 08:02:53 -06:00
802 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
8021q [VLAN]: Fix potential race in vlan_cleanup_module vs vlan_ioctl_handler. 2007-12-11 02:45:32 -08:00
appletalk [NET]: Forget the zero_it argument of sk_alloc() 2007-11-01 00:39:31 -07:00
atm [NET]: Forget the zero_it argument of sk_alloc() 2007-11-01 00:39:31 -07:00
ax25 [NET]: Correct two mistaken skb_reset_mac_header() conversions. 2007-12-20 00:25:54 -08:00
bluetooth [BLUETOOTH]: put_device before device_del fix 2007-12-29 19:17:47 -08:00
bridge [BRIDGE]: Assign random address. 2007-12-16 13:35:51 -08:00
core [NET]: Fix function put_cmsg() which may cause usr application memory overflow 2007-12-20 14:36:44 -08:00
dccp [DCCP]: Spelling fixes 2007-12-20 13:59:39 -08:00
decnet [DECNET]: dn_nl_deladdr() almost always returns no error 2007-11-30 23:43:31 +11:00
econet [NET]: Forget the zero_it argument of sk_alloc() 2007-11-01 00:39:31 -07:00
ethernet [NET]: Validate device addr prior to interface-up 2007-10-23 21:27:50 -07:00
ieee80211 Merge branch 'fixes-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2007-11-30 23:29:27 +11:00
ipv4 [TCP]: use non-delayed ACK for congestion control RTT 2007-12-29 19:11:21 -08:00
ipv6 [IPV6]: Spelling fixes 2007-12-20 14:01:35 -08:00
ipx [IPX]: Use existing sock refcnt debugging infrastructure 2007-11-10 21:39:26 -08:00
irda [IRDA]: Spelling fixes 2007-12-20 14:00:51 -08:00
iucv [S390] Explicitly code allocpercpu calls in iucv 2007-11-20 11:13:47 +01:00
key [IPSEC]: Avoid undefined shift operation when testing algorithm ID 2007-12-19 23:44:29 -08:00
lapb
llc [NET]: Forget the zero_it argument of sk_alloc() 2007-11-01 00:39:31 -07:00
mac80211 mac80211: warn when receiving frames with unaligned data 2007-12-26 19:36:32 -08:00
netfilter [NETFILTER]: nf_conntrack_ipv4: fix module parameter compatibility 2007-12-26 19:36:33 -08:00
netlabel [NETLABEL]: Spelling fixes 2007-12-20 14:03:11 -08:00
netlink [NET]: Move unneeded data to initdata section. 2007-11-13 03:23:50 -08:00
netrom [NET]: Correct two mistaken skb_reset_mac_header() conversions. 2007-12-20 00:25:54 -08:00
packet [AF_PACKET]: Fix minor code duplication 2007-11-12 21:05:20 -08:00
rfkill rfkill: fix double-mutex-locking 2007-11-29 18:08:48 -05:00
rose [ROSE]: Trivial compilation CONFIG_INET=n case 2007-12-05 05:37:28 -08:00
rxrpc [AF_RXRPC]: Add a missing goto 2007-12-07 04:31:47 -08:00
sched [PKT_SCHED]: Spelling fixes 2007-12-20 14:02:40 -08:00
sctp [SCTP]: Spelling fixes 2007-12-20 14:03:52 -08:00
sunrpc NFS: add newline to kernel warning message in auth_gss code 2008-01-03 09:37:16 -05:00
tipc [TIPC]: Fix semaphore handling. 2007-12-14 13:54:37 -08:00
unix [UNIX]: EOF on non-blocking SOCK_SEQPACKET 2007-11-29 23:19:23 +11:00
wanrouter [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
wireless [WIRELESS] WEXT: Fix userspace corruption on 64-bit. 2007-11-20 03:29:53 -08:00
x25 [X25]: Add missing x25_neigh_put 2008-01-04 00:47:02 -08:00
xfrm [XFRM]: Audit function arguments misordered 2007-12-20 00:00:45 -08:00
compat.c [NET]: Fix function put_cmsg() which may cause usr application memory overflow 2007-12-20 14:36:44 -08:00
Kconfig [NET]: Add network namespace clone & unshare support. 2007-10-10 16:52:46 -07:00
Makefile 9p: Reorganization of 9p file system code 2007-07-14 15:13:40 -05:00
nonet.c
socket.c [NET]: Add the helper kernel_sock_shutdown() 2007-11-12 18:10:39 -08:00
sysctl_net.c
TUNABLE