Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
scsi: qla2xxx: Avoid req_q_map double-read in qla2x00_error_entry()
In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Avoid req_q_map double-read in qla2x00_error_entry() qla2x00_error_entry() reads ha->req_q_map[que] twice: once for the NULL check and again when assigning it to req. The map slot is cleared by qla25xx_free_req_que() (ha->req_q_map[que_id] = NULL under mq_lock) during queue teardown, while the response-queue interrupt that drives qla2x00_error_entry() is still registered (the IRQ is released later in qla25xx_free_rsp_que()). If the slot is set to NULL between the two reads, req becomes NULL and is dereferenced. Read the slot once into req and NULL-check the local before use. mq_lock is a mutex and cannot be taken from interrupt context, so the single read plus local check is the appropriate fix for the reported NULL dereference.
References
Affected products
- =<7.2.*
- <c845f2597787ef70159a32566669e308b2807a56
- <5dd9bec8004ba93cee8b689bf54ce294f59e5e3c
- <3.4
- =<6.6.*
- =<6.12.*
- <deb8abde83a799d2501f3977f6d6051000253f5e
- <fe04b31e386aee4cc3a18f07462af146037dc389
- =<6.18.*
- =<5.15.*
- =<*
- ==3.4
- <d79376fbd2a076de82c1cd8aa0b600b300c75a44
- =<6.1.*
- <1b995cf4157465357d66ba096e7cdaafab9972e7
- <35124cfa9898b2088ee72859e573e0876aff66fc
- =<5.10.*
- <1c90b74e484ba48f31944fe04963d99e01ac3767