Revision 89a8640279f8bb78aaf778d1fc5c4a6778f18064 authored by David Howells on 30 October 2009, 13:13:26 UTC, committed by Linus Torvalds on 31 October 2009, 19:11:37 UTC
Don't pass NULL pointers to fput() in the error handling paths of the NOMMU
do_mmap_pgoff() as it can't handle it.

The following can be used as a test program:

	int main() { static long long a[1024 * 1024 * 20] = { 0 }; return a;}

Without the patch, the code oopses in atomic_long_dec_and_test() as called by
fput() after the kernel complains that it can't allocate that big a chunk of
memory.  With the patch, the kernel just complains about the allocation size
and then the program segfaults during execve() as execve() can't complete the
allocation of all the new ELF program segments.

Reported-by: Robin Getz <rgetz@blackfin.uclinux.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Robin Getz <rgetz@blackfin.uclinux.org>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 2e2ec95
History
File Mode Size
9p
bluetooth
irda
iucv
netfilter
netns
phonet
sctp
tc_act
tipc
act_api.h -rw-r--r-- 4.1 KB
addrconf.h -rw-r--r-- 7.2 KB
af_ieee802154.h -rw-r--r-- 1.6 KB
af_rxrpc.h -rw-r--r-- 2.0 KB
af_unix.h -rw-r--r-- 1.8 KB
ah.h -rw-r--r-- 894 bytes
arp.h -rw-r--r-- 1.0 KB
atmclip.h -rw-r--r-- 1.6 KB
ax25.h -rw-r--r-- 15.0 KB
ax88796.h -rw-r--r-- 998 bytes
cfg80211.h -rw-r--r-- 64.7 KB
checksum.h -rw-r--r-- 3.1 KB
cipso_ipv4.h -rw-r--r-- 7.4 KB
compat.h -rw-r--r-- 1.7 KB
datalink.h -rw-r--r-- 482 bytes
dcbnl.h -rw-r--r-- 2.2 KB
dn.h -rw-r--r-- 7.0 KB
dn_dev.h -rw-r--r-- 5.4 KB
dn_fib.h -rw-r--r-- 4.8 KB
dn_neigh.h -rw-r--r-- 824 bytes
dn_nsp.h -rw-r--r-- 6.1 KB
dn_route.h -rw-r--r-- 4.1 KB
dsa.h -rw-r--r-- 1.6 KB
dsfield.h -rw-r--r-- 1.1 KB
dst.h -rw-r--r-- 6.5 KB
dst_ops.h -rw-r--r-- 714 bytes
esp.h -rw-r--r-- 434 bytes
ethoc.h -rw-r--r-- 502 bytes
fib_rules.h -rw-r--r-- 2.8 KB
flow.h -rw-r--r-- 2.0 KB
garp.h -rw-r--r-- 2.6 KB
gen_stats.h -rw-r--r-- 1.7 KB
genetlink.h -rw-r--r-- 8.3 KB
icmp.h -rw-r--r-- 1.8 KB
ieee80211_radiotap.h -rw-r--r-- 9.4 KB
ieee802154.h -rw-r--r-- 5.4 KB
ieee802154_netdev.h -rw-r--r-- 3.1 KB
if_inet6.h -rw-r--r-- 6.4 KB
inet6_connection_sock.h -rw-r--r-- 1.2 KB
inet6_hashtables.h -rw-r--r-- 3.5 KB
inet_common.h -rw-r--r-- 1.5 KB
inet_connection_sock.h -rw-r--r-- 10.4 KB
inet_ecn.h -rw-r--r-- 2.8 KB
inet_frag.h -rw-r--r-- 1.9 KB
inet_hashtables.h -rw-r--r-- 13.2 KB
inet_sock.h -rw-r--r-- 5.6 KB
inet_timewait_sock.h -rw-r--r-- 6.7 KB
inetpeer.h -rw-r--r-- 1.3 KB
ip.h -rw-r--r-- 11.9 KB
ip6_checksum.h -rw-r--r-- 2.3 KB
ip6_fib.h -rw-r--r-- 4.9 KB
ip6_route.h -rw-r--r-- 3.8 KB
ip6_tunnel.h -rw-r--r-- 947 bytes
ip_fib.h -rw-r--r-- 6.8 KB
ip_vs.h -rw-r--r-- 27.3 KB
ipcomp.h -rw-r--r-- 610 bytes
ipconfig.h -rw-r--r-- 772 bytes
ipip.h -rw-r--r-- 1.3 KB
ipv6.h -rw-r--r-- 17.4 KB
ipx.h -rw-r--r-- 3.8 KB
iw_handler.h -rw-r--r-- 21.6 KB
lapb.h -rw-r--r-- 4.7 KB
lib80211.h -rw-r--r-- 4.4 KB
llc.h -rw-r--r-- 3.6 KB
llc_c_ac.h -rw-r--r-- 10.1 KB
llc_c_ev.h -rw-r--r-- 11.6 KB
llc_c_st.h -rw-r--r-- 1.7 KB
llc_conn.h -rw-r--r-- 4.1 KB
llc_if.h -rw-r--r-- 3.0 KB
llc_pdu.h -rw-r--r-- 14.4 KB
llc_s_ac.h -rw-r--r-- 1.6 KB
llc_s_ev.h -rw-r--r-- 2.3 KB
llc_s_st.h -rw-r--r-- 941 bytes
llc_sap.h -rw-r--r-- 1.2 KB
mac80211.h -rw-r--r-- 83.4 KB
mip6.h -rw-r--r-- 1.7 KB
ndisc.h -rw-r--r-- 3.8 KB
neighbour.h -rw-r--r-- 9.7 KB
net_namespace.h -rw-r--r-- 6.6 KB
netdma.h -rw-r--r-- 1.2 KB
netevent.h -rw-r--r-- 781 bytes
netlabel.h -rw-r--r-- 17.2 KB
netlink.h -rw-r--r-- 30.6 KB
netrom.h -rw-r--r-- 7.9 KB
nexthop.h -rw-r--r-- 821 bytes
nl802154.h -rw-r--r-- 4.5 KB
p8022.h -rw-r--r-- 441 bytes
pkt_cls.h -rw-r--r-- 9.1 KB
pkt_sched.h -rw-r--r-- 3.3 KB
protocol.h -rw-r--r-- 3.9 KB
psnap.h -rw-r--r-- 326 bytes
raw.h -rw-r--r-- 1.6 KB
rawv6.h -rw-r--r-- 585 bytes
red.h -rw-r--r-- 7.5 KB
regulatory.h -rw-r--r-- 3.0 KB
request_sock.h -rw-r--r-- 6.4 KB
rose.h -rw-r--r-- 7.7 KB
route.h -rw-r--r-- 5.8 KB
rtnetlink.h -rw-r--r-- 3.1 KB
sch_generic.h -rw-r--r-- 14.0 KB
scm.h -rw-r--r-- 2.7 KB
slhc_vj.h -rw-r--r-- 6.6 KB
snmp.h -rw-r--r-- 4.9 KB
sock.h -rw-r--r-- 45.3 KB
stp.h -rw-r--r-- 358 bytes
tcp.h -rw-r--r-- 42.8 KB
tcp_states.h -rw-r--r-- 1.2 KB
timewait_sock.h -rw-r--r-- 1.2 KB
transp_v6.h -rw-r--r-- 1.3 KB
udp.h -rw-r--r-- 6.3 KB
udplite.h -rw-r--r-- 3.4 KB
wext.h -rw-r--r-- 944 bytes
wimax.h -rw-r--r-- 20.0 KB
wpan-phy.h -rw-r--r-- 1.7 KB
x25.h -rw-r--r-- 9.3 KB
x25device.h -rw-r--r-- 322 bytes
xfrm.h -rw-r--r-- 43.0 KB

back to top