lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <208bcd450f85706c3f5a22dee0595612c8196ab4.1547878835.git.igor.russkikh@aquantia.com> Date: Mon, 21 Jan 2019 14:53:49 +0000 From: Igor Russkikh <Igor.Russkikh@...antia.com> To: "David S . Miller" <davem@...emloft.net> CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, Igor Russkikh <Igor.Russkikh@...antia.com>, Nikita Danilov <Nikita.Danilov@...antia.com> Subject: [PATCH net 3/5] net: aquantia: fixed buffer overflow From: Nikita Danilov <nikita.danilov@...antia.com> The overflow is detected by smatch: drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c: 175 aq_pci_func_free_irqs() error: buffer overflow 'self->aq_vec' 8 <= 31 In reality msix_entry_mask always restricts number of iterations, adding extra condition to make logic clear and smatch happy. Signed-off-by: Nikita Danilov <nikita.danilov@...antia.com> Signed-off-by: Igor Russkikh <igor.russkikh@...antia.com> --- drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index c8b44cdb91c1..0217ff4669a4 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -170,6 +170,8 @@ void aq_pci_func_free_irqs(struct aq_nic_s *self) for (i = 32U; i--;) { if (!((1U << i) & self->msix_entry_mask)) continue; + if (i >= AQ_CFG_VECS_MAX) + continue; if (pdev->msix_enabled) irq_set_affinity_hint(pci_irq_vector(pdev, i), NULL); -- 2.17.1
Powered by blists - more mailing lists