Revision 13d5e5d4725c64ec06040d636832e78453f477b7 authored by Takashi Iwai on 16 February 2016, 13:15:59 UTC, committed by Takashi Iwai on 16 February 2016, 13:37:19 UTC
The commit [7f0973e973cd: ALSA: seq: Fix lockdep warnings due to double mutex locks] split the management of two linked lists (source and destination) into two individual calls for avoiding the AB/BA deadlock. However, this may leave the possible double deletion of one of two lists when the counterpart is being deleted concurrently. It ends up with a list corruption, as revealed by syzkaller fuzzer. This patch fixes it by checking the list emptiness and skipping the deletion and the following process. BugLink: http://lkml.kernel.org/r/CACT4Y+bay9qsrz6dQu31EcGaH9XwfW7o3oBzSQUG9fMszoh=Sg@mail.gmail.com Fixes: 7f0973e973cd ('ALSA: seq: Fix lockdep warnings due to 'double mutex locks) Reported-by: Dmitry Vyukov <dvyukov@google.com> Tested-by: Dmitry Vyukov <dvyukov@google.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 0b8c821
File | Mode | Size |
---|---|---|
9p | ||
bluetooth | ||
caif | ||
irda | ||
iucv | ||
netfilter | ||
netns | ||
nfc | ||
phonet | ||
sctp | ||
tc_act | ||
6lowpan.h | -rw-r--r-- | 7.8 KB |
Space.h | -rw-r--r-- | 1.1 KB |
act_api.h | -rw-r--r-- | 4.2 KB |
addrconf.h | -rw-r--r-- | 11.3 KB |
af_ieee802154.h | -rw-r--r-- | 1.6 KB |
af_rxrpc.h | -rw-r--r-- | 1.8 KB |
af_unix.h | -rw-r--r-- | 2.1 KB |
af_vsock.h | -rw-r--r-- | 6.2 KB |
ah.h | -rw-r--r-- | 343 bytes |
arp.h | -rw-r--r-- | 1.4 KB |
atmclip.h | -rw-r--r-- | 1.4 KB |
ax25.h | -rw-r--r-- | 14.5 KB |
ax88796.h | -rw-r--r-- | 998 bytes |
bond_3ad.h | -rw-r--r-- | 9.7 KB |
bond_alb.h | -rw-r--r-- | 6.6 KB |
bond_options.h | -rw-r--r-- | 3.8 KB |
bonding.h | -rw-r--r-- | 18.6 KB |
busy_poll.h | -rw-r--r-- | 3.0 KB |
cfg80211-wext.h | -rw-r--r-- | 2.0 KB |
cfg80211.h | -rw-r--r-- | 187.6 KB |
cfg802154.h | -rw-r--r-- | 10.6 KB |
checksum.h | -rw-r--r-- | 4.6 KB |
cipso_ipv4.h | -rw-r--r-- | 8.1 KB |
cls_cgroup.h | -rw-r--r-- | 2.1 KB |
codel.h | -rw-r--r-- | 11.2 KB |
compat.h | -rw-r--r-- | 2.0 KB |
datalink.h | -rw-r--r-- | 580 bytes |
dcbevent.h | -rw-r--r-- | 1.3 KB |
dcbnl.h | -rw-r--r-- | 4.2 KB |
dn.h | -rw-r--r-- | 7.0 KB |
dn_dev.h | -rw-r--r-- | 5.3 KB |
dn_fib.h | -rw-r--r-- | 3.9 KB |
dn_neigh.h | -rw-r--r-- | 929 bytes |
dn_nsp.h | -rw-r--r-- | 5.9 KB |
dn_route.h | -rw-r--r-- | 4.4 KB |
dsa.h | -rw-r--r-- | 8.9 KB |
dsfield.h | -rw-r--r-- | 1.1 KB |
dst.h | -rw-r--r-- | 13.3 KB |
dst_metadata.h | -rw-r--r-- | 3.6 KB |
dst_ops.h | -rw-r--r-- | 2.0 KB |
esp.h | -rw-r--r-- | 225 bytes |
ethoc.h | -rw-r--r-- | 538 bytes |
fib_rules.h | -rw-r--r-- | 3.0 KB |
firewire.h | -rw-r--r-- | 597 bytes |
flow.h | -rw-r--r-- | 6.8 KB |
flow_dissector.h | -rw-r--r-- | 4.8 KB |
flowcache.h | -rw-r--r-- | 561 bytes |
fou.h | -rw-r--r-- | 499 bytes |
garp.h | -rw-r--r-- | 2.6 KB |
gen_stats.h | -rw-r--r-- | 2.1 KB |
genetlink.h | -rw-r--r-- | 13.3 KB |
geneve.h | -rw-r--r-- | 1.8 KB |
gre.h | -rw-r--r-- | 661 bytes |
gro_cells.h | -rw-r--r-- | 1.9 KB |
gue.h | -rw-r--r-- | 3.2 KB |
icmp.h | -rw-r--r-- | 1.5 KB |
ieee80211_radiotap.h | -rw-r--r-- | 12.2 KB |
ieee802154_netdev.h | -rw-r--r-- | 9.1 KB |
if_inet6.h | -rw-r--r-- | 6.1 KB |
ila.h | -rw-r--r-- | 498 bytes |
inet6_connection_sock.h | -rw-r--r-- | 1.1 KB |
inet6_hashtables.h | -rw-r--r-- | 3.2 KB |
inet_common.h | -rw-r--r-- | 1.6 KB |
inet_connection_sock.h | -rw-r--r-- | 10.4 KB |
inet_ecn.h | -rw-r--r-- | 6.0 KB |
inet_frag.h | -rw-r--r-- | 5.0 KB |
inet_hashtables.h | -rw-r--r-- | 12.0 KB |
inet_sock.h | -rw-r--r-- | 8.0 KB |
inet_timewait_sock.h | -rw-r--r-- | 4.1 KB |
inetpeer.h | -rw-r--r-- | 3.4 KB |
ip.h | -rw-r--r-- | 17.1 KB |
ip6_checksum.h | -rw-r--r-- | 2.9 KB |
ip6_fib.h | -rw-r--r-- | 6.7 KB |
ip6_route.h | -rw-r--r-- | 5.8 KB |
ip6_tunnel.h | -rw-r--r-- | 3.0 KB |
ip_fib.h | -rw-r--r-- | 9.3 KB |
ip_tunnels.h | -rw-r--r-- | 9.6 KB |
ip_vs.h | -rw-r--r-- | 45.8 KB |
ipcomp.h | -rw-r--r-- | 620 bytes |
ipconfig.h | -rw-r--r-- | 772 bytes |
ipv6.h | -rw-r--r-- | 28.7 KB |
ipx.h | -rw-r--r-- | 4.3 KB |
iw_handler.h | -rw-r--r-- | 22.0 KB |
l3mdev.h | -rw-r--r-- | 5.2 KB |
lapb.h | -rw-r--r-- | 4.7 KB |
lib80211.h | -rw-r--r-- | 3.9 KB |
llc.h | -rw-r--r-- | 4.3 KB |
llc_c_ac.h | -rw-r--r-- | 9.3 KB |
llc_c_ev.h | -rw-r--r-- | 10.7 KB |
llc_c_st.h | -rw-r--r-- | 1.7 KB |
llc_conn.h | -rw-r--r-- | 4.0 KB |
llc_if.h | -rw-r--r-- | 2.2 KB |
llc_pdu.h | -rw-r--r-- | 14.1 KB |
llc_s_ac.h | -rw-r--r-- | 1.6 KB |
llc_s_ev.h | -rw-r--r-- | 2.2 KB |
llc_s_st.h | -rw-r--r-- | 947 bytes |
llc_sap.h | -rw-r--r-- | 1.1 KB |
lwtunnel.h | -rw-r--r-- | 4.1 KB |
mac80211.h | -rw-r--r-- | 214.5 KB |
mac802154.h | -rw-r--r-- | 12.1 KB |
mip6.h | -rw-r--r-- | 1.6 KB |
mld.h | -rw-r--r-- | 2.8 KB |
mpls.h | -rw-r--r-- | 1.1 KB |
mpls_iptunnel.h | -rw-r--r-- | 815 bytes |
mrp.h | -rw-r--r-- | 3.0 KB |
ndisc.h | -rw-r--r-- | 5.4 KB |
neighbour.h | -rw-r--r-- | 14.2 KB |
net_namespace.h | -rw-r--r-- | 9.1 KB |
net_ratelimit.h | -rw-r--r-- | 181 bytes |
netevent.h | -rw-r--r-- | 739 bytes |
netlabel.h | -rw-r--r-- | 17.2 KB |
netlink.h | -rw-r--r-- | 36.1 KB |
netprio_cgroup.h | -rw-r--r-- | 1.2 KB |
netrom.h | -rw-r--r-- | 7.6 KB |
nexthop.h | -rw-r--r-- | 821 bytes |
nl802154.h | -rw-r--r-- | 11.9 KB |
p8022.h | -rw-r--r-- | 408 bytes |
ping.h | -rw-r--r-- | 3.5 KB |
pkt_cls.h | -rw-r--r-- | 9.1 KB |
pkt_sched.h | -rw-r--r-- | 3.8 KB |
protocol.h | -rw-r--r-- | 4.1 KB |
psnap.h | -rw-r--r-- | 312 bytes |
raw.h | -rw-r--r-- | 1.8 KB |
rawv6.h | -rw-r--r-- | 543 bytes |
red.h | -rw-r--r-- | 10.0 KB |
regulatory.h | -rw-r--r-- | 10.1 KB |
request_sock.h | -rw-r--r-- | 6.4 KB |
rose.h | -rw-r--r-- | 7.6 KB |
route.h | -rw-r--r-- | 9.3 KB |
rtnetlink.h | -rw-r--r-- | 5.4 KB |
sch_generic.h | -rw-r--r-- | 19.6 KB |
scm.h | -rw-r--r-- | 3.4 KB |
secure_seq.h | -rw-r--r-- | 677 bytes |
slhc_vj.h | -rw-r--r-- | 6.6 KB |
snmp.h | -rw-r--r-- | 5.7 KB |
sock.h | -rw-r--r-- | 60.3 KB |
sock_reuseport.h | -rw-r--r-- | 824 bytes |
stp.h | -rw-r--r-- | 344 bytes |
switchdev.h | -rw-r--r-- | 9.2 KB |
tcp.h | -rw-r--r-- | 54.4 KB |
tcp_states.h | -rw-r--r-- | 1.3 KB |
timewait_sock.h | -rw-r--r-- | 1.1 KB |
transp_v6.h | -rw-r--r-- | 1.8 KB |
tso.h | -rw-r--r-- | 446 bytes |
udp.h | -rw-r--r-- | 9.8 KB |
udp_tunnel.h | -rw-r--r-- | 3.2 KB |
udplite.h | -rw-r--r-- | 3.8 KB |
vsock_addr.h | -rw-r--r-- | 1.0 KB |
vxlan.h | -rw-r--r-- | 7.0 KB |
wext.h | -rw-r--r-- | 1.5 KB |
wimax.h | -rw-r--r-- | 20.0 KB |
x25.h | -rw-r--r-- | 9.3 KB |
x25device.h | -rw-r--r-- | 348 bytes |
xfrm.h | -rw-r--r-- | 49.5 KB |
Computing file changes ...