linux/drivers/isdn/hisax
Jia-Ju Bai 7418e6520f isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in HFCPCI_l1hw()
In drivers/isdn/hisax/hfc_pci.c, the functions hfcpci_interrupt() and
HFCPCI_l1hw() may be concurrently executed.

HFCPCI_l1hw()
  line 1173: if (!cs->tx_skb)

hfcpci_interrupt()
  line 942: spin_lock_irqsave();
  line 1066: dev_kfree_skb_irq(cs->tx_skb);

Thus, a possible concurrency use-after-free bug may occur
in HFCPCI_l1hw().

To fix these bugs, the calls to spin_lock_irqsave() and
spin_unlock_irqrestore() are added in HFCPCI_l1hw(), to protect the
access to cs->tx_skb.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-12-28 21:27:31 -08:00
..
Kconfig treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
amd7930_fn.c isdn/hisax: amd7930_fn: Remove unnecessary parentheses 2018-10-10 22:28:50 -07:00
amd7930_fn.h
arcofi.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
arcofi.h
asuscom.c isdn: hisax: Fix pnp_irq's error checking for setup_asuscom 2017-11-16 22:31:15 +09:00
avm_a1.c
avm_a1p.c
avm_pci.c isdn: mark expected switch fall-throughs 2018-07-04 22:17:32 +09:00
avma1_cs.c
bkm_a4t.c
bkm_a8.c
bkm_ax.h
callc.c isdn: hisax: callc: Replace GFP_ATOMIC with GFP_KERNEL in init_PStack() 2018-07-26 21:23:16 -07:00
config.c isdn: hisax: config: Replace GFP_ATOMIC with GFP_KERNEL 2018-07-26 21:23:47 -07:00
diva.c isdn: hisax: Fix pnp_irq's error checking for setup_diva_isapnp 2017-11-16 22:31:15 +09:00
elsa.c isdn: hisax: Fix pnp_irq's error checking for setup_elsa_isapnp 2017-11-16 22:31:15 +09:00
elsa_cs.c
elsa_ser.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
enternow_pci.c
fsm.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
fsm.h
gazel.c isdn: mark expected switch fall-throughs 2018-07-04 22:17:32 +09:00
hfc4s8s_l1.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
hfc4s8s_l1.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hfc_2bds0.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
hfc_2bds0.h
hfc_2bs0.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
hfc_2bs0.h
hfc_pci.c isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in HFCPCI_l1hw() 2018-12-28 21:27:31 -08:00
hfc_pci.h isdn: hfc_{pci,sx}: Avoid empty body if statements 2018-10-22 19:24:48 -07:00
hfc_sx.c isdn: hfc_{pci,sx}: Avoid empty body if statements 2018-10-22 19:24:48 -07:00
hfc_sx.h
hfc_usb.c isdn: hisax: hfc_usb: use usb_fill_int_urb() 2018-06-22 13:54:39 +09:00
hfc_usb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hfcscard.c isdn: hisax: Fix pnp_irq's error checking for setup_hfcs 2017-11-16 22:31:16 +09:00
hisax.h isdn: hfc_{pci,sx}: Avoid empty body if statements 2018-10-22 19:24:48 -07:00
hisax_cfg.h
hisax_debug.h
hisax_fcpcipnp.c isdn: hisax: Handle return value of pnp_irq and pnp_port_start 2017-11-16 22:31:16 +09:00
hisax_fcpcipnp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hisax_if.h
hisax_isac.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
hisax_isac.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hscx.c
hscx.h
hscx_irq.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
icc.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
icc.h
ipac.h
ipacx.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
ipacx.h
isac.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
isac.h
isar.c isdn: mark expected switch fall-throughs 2018-07-04 22:17:32 +09:00
isar.h
isdnl1.c
isdnl1.h
isdnl2.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
isdnl2.h
isdnl3.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
isdnl3.h
isurf.c isdn: hisax: Fix pnp_irq's error checking for setup_isurf 2017-11-16 22:31:16 +09:00
ix1_micro.c isdn: hisax: Fix pnp_irq's error checking for setup_ix1micro 2017-11-16 22:31:16 +09:00
jade.c
jade.h
jade_irq.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
l3_1tr6.c isdn: mark expected switch fall-throughs 2018-07-04 22:17:32 +09:00
l3_1tr6.h
l3dss1.c isdn: mark expected switch fall-throughs 2018-07-04 22:17:32 +09:00
l3dss1.h
l3ni1.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
l3ni1.h
lmgr.c
mic.c
netjet.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
netjet.h
niccy.c isdn: hisax: Fix pnp_irq's error checking for setup_niccy 2017-11-16 22:31:16 +09:00
nj_s.c
nj_u.c
q931.c treewide: Fix printk() message errors 2016-12-14 10:54:27 +01:00
s0box.c
saphir.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
sedlbauer.c isdn: hisax: Fix pnp_irq's error checking for setup_sedlbauer_isapnp 2017-11-16 22:31:16 +09:00
sedlbauer_cs.c
sportster.c
st5481.h
st5481_b.c scripts/spelling.txt: add "disble(d)" pattern and fix typo instances 2017-03-09 17:01:09 -08:00
st5481_d.c
st5481_init.c
st5481_usb.c isdn: hisax: st5481_usb: use usb_fill_int_urb() 2018-06-22 13:54:39 +09:00
tei.c
teleint.c isdn/hisax: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
teles0.c
teles3.c isdn: hisax: Fix pnp_irq's error checking for setup_teles3 2017-11-16 22:31:16 +09:00
teles_cs.c
telespci.c
w6692.c isdn/hisax: Fix fall-through annotation 2018-10-02 11:22:09 -07:00
w6692.h