Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp520879imu; Thu, 20 Dec 2018 00:31:03 -0800 (PST) X-Google-Smtp-Source: AFSGD/XpAECO7X2ElAlgyfCK4UVMJFva2isH/GJRjAqkmGq9hIQWlnEzaxmT60t/gmrG36RNCrAi X-Received: by 2002:a62:1043:: with SMTP id y64mr23862926pfi.78.1545294663341; Thu, 20 Dec 2018 00:31:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545294663; cv=none; d=google.com; s=arc-20160816; b=L8xeJGA/6BJnDtDrVUb/Nqs+hrIaI5IAsNzboAcF2SaTuojFe0xu5DcaNaALUtTfbX MMcPwaeGcyx2Vq9h4k2p7fEj5qVq4kUz0ERm3OIrBy9N0GApT17qBkpNcg2zp3Rq/XN1 a84vAeMv6mPhZo7DgFbkCAqiWR/FTJ/C69aDUVTaP7UI9GK2XWqRJ3fm9y8ZffAjr1e7 nAXvT0gNyxX7mFLnK+4c4AH15unA2cUX+Lm58hDne42MJFOTWdr8pVFz2Z3CleK8q29n uPQKxoDoe4jdLyjx82J4nKUETnkqTd1JUXCilNM/DW3n42c8LjMzH6P4a8QT+0NFLImq Uvmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=UCtnGya6DBuZlG2JXdUy9D1s33PUt41POFpDz1+IKB0=; b=PGmg6N2WOXI5ICwD3r7b0qkv/Z5xk7aBSvNIhA2NemhokN9qoVPCjLG04U05TOBCZd kDjDH+2EH4tVhacbUhPVG5Qxxi7JfMAMFJ08I6rCRPqrIYoZU/QN7tuwfa6VRexeKnsR QieAnBfn2yHPsEM0ouFkdwBjz+t4THpR6IUJaIZnYCBSdjUsw8M7wk8U81Rc9Qqy3wof aUtkGP5bvr2+rR9ghmm1FEZ8ufwmMVSsrEj5V/8Js7qE6Z/97ux4ArZxjpbkKYaS/bxu qDCUkjFJ9Tx7/zFuaNeAvX64vlQssYInBVBKmrgzUUwg0l8/nzmnX3hZE+ja3FqfrMwm btkg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p3si17685197plr.376.2018.12.20.00.30.47; Thu, 20 Dec 2018 00:31:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731080AbeLTIY5 (ORCPT + 99 others); Thu, 20 Dec 2018 03:24:57 -0500 Received: from ozlabs.ru ([107.173.13.209]:54764 "EHLO ozlabs.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731067AbeLTIYz (ORCPT ); Thu, 20 Dec 2018 03:24:55 -0500 Received: from fstn1-p1.ozlabs.ibm.com (localhost [IPv6:::1]) by ozlabs.ru (Postfix) with ESMTP id 38ADAAE8035F; Thu, 20 Dec 2018 03:24:51 -0500 (EST) From: Alexey Kardashevskiy To: linuxppc-dev@lists.ozlabs.org Cc: Alexey Kardashevskiy , David Gibson , kvm-ppc@vger.kernel.org, kvm@vger.kernel.org, Alistair Popple , Reza Arbab , Sam Bobroff , Piotr Jaroszynski , =?UTF-8?q?Leonardo=20Augusto=20Guimar=C3=A3es=20Garcia?= , Jose Ricardo Ziviani , Daniel Henrique Barboza , Alex Williamson , Paul Mackerras , linux-kernel@vger.kernel.org, Christoph Hellwig Subject: [PATCH kernel v7 16/20] powerpc/powernv/npu: Check mmio_atsd array bounds when populating Date: Thu, 20 Dec 2018 19:23:46 +1100 Message-Id: <20181220082350.58113-17-aik@ozlabs.ru> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181220082350.58113-1-aik@ozlabs.ru> References: <20181220082350.58113-1-aik@ozlabs.ru> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A broken device tree might contain more than 8 values and introduce hard to debug memory corruption bug. This adds the boundary check. Signed-off-by: Alexey Kardashevskiy --- arch/powerpc/platforms/powernv/npu-dma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/platforms/powernv/npu-dma.c b/arch/powerpc/platforms/powernv/npu-dma.c index e06043b..c6163b9 100644 --- a/arch/powerpc/platforms/powernv/npu-dma.c +++ b/arch/powerpc/platforms/powernv/npu-dma.c @@ -1179,8 +1179,9 @@ int pnv_npu2_init(struct pci_controller *hose) npu->nmmu_flush = of_property_read_bool(hose->dn, "ibm,nmmu-flush"); - for (i = 0; !of_property_read_u64_index(hose->dn, "ibm,mmio-atsd", - i, &mmio_atsd); i++) + for (i = 0; i < ARRAY_SIZE(npu->mmio_atsd_regs) && + !of_property_read_u64_index(hose->dn, "ibm,mmio-atsd", + i, &mmio_atsd); i++) npu->mmio_atsd_regs[i] = ioremap(mmio_atsd, 32); pr_info("NPU%d: Found %d MMIO ATSD registers", hose->global_number, i); -- 2.17.1