From patchwork Thu Jan 21 01:06:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qiang Zhao X-Patchwork-Id: 570994 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 173B41401AD for ; Thu, 21 Jan 2016 12:15:46 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id ACADD1A199D for ; Thu, 21 Jan 2016 12:15:45 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0067.outbound.protection.outlook.com [157.56.110.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 592D01A0E9C for ; Thu, 21 Jan 2016 12:14:33 +1100 (AEDT) Received: from BLUPR03CA007.namprd03.prod.outlook.com (10.255.124.24) by BY2PR03MB362.namprd03.prod.outlook.com (10.242.237.15) with Microsoft SMTP Server (TLS) id 15.1.365.19; Thu, 21 Jan 2016 01:14:26 +0000 Received: from BL2FFO11FD024.protection.gbl (10.255.124.4) by BLUPR03CA007.outlook.office365.com (10.255.124.24) with Microsoft SMTP Server (TLS) id 15.1.365.19 via Frontend Transport; Thu, 21 Jan 2016 01:14:25 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD024.mail.protection.outlook.com (10.173.161.103) with Microsoft SMTP Server (TLS) id 15.1.355.15 via Frontend Transport; Thu, 21 Jan 2016 01:14:23 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u0L1EIuM021111; Wed, 20 Jan 2016 18:14:19 -0700 From: Zhao Qiang To: , Subject: [PATCH] qe_ic: fix a buffer overflow error and add check elsewhere Date: Thu, 21 Jan 2016 09:06:04 +0800 Message-ID: <1453338364-45129-1-git-send-email-qiang.zhao@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Matching-Connectors: 130978124657556166; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD024; 1:P0HwvzkMwsJbO2YEuMF2poC7ncpKzrezRa/D0leuEb5TprRjpEmnLSnpCC9/0cobSjS5XAsRFUJCDhsbjcCQPeVbrtJEqCeJYgDyFvwGdGp/Q9qZePwHnmu6Z7K0qKhlqSwaCRqs3QgoKtfelqGnTh6W0RI13gaXD5kJyvab42F4SehgcjlO0Cb3K9TcW4pNTaVCqfoRLpacWqzLmqkW6n1gXU30KZqaXalE53FGSEVlT06hkLfG2rOM/0GLiKxPnzaigx4x50zblBOmjZT9h/d7eoN3nM9BabPOkWSCD3FElGuix8xsaSkn26mFBnsQonhB8buX79IAeo5Wk6xBaRhEWQZuUx5pz6CrGPZh/rCHaMJu+rYl+GXq5xDDwUktHiyDnJ663UgQPrjAF+tYa17gjF3QDxsUxFUrXmtpNMFuHfE5h47I91hX3sC5ZrwZQtWXSHXTlQVRrlvYgJ7KAzXqM/+p4wL4nktkmVXItF3I+37oRzP4nlq8S5njmIFz+yjoeddSYRwieMySxp1U0w== X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(86362001)(5008740100001)(50466002)(97736004)(5003940100001)(81156007)(85426001)(87936001)(50986999)(5001960100002)(229853001)(36756003)(586003)(48376002)(92566002)(105606002)(4326007)(77096005)(19580395003)(1220700001)(189998001)(5001770100001)(6806005)(33646002)(1096002)(47776003)(2906002)(106466001)(104016004)(19580405001)(50226001)(7059030)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB362; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: e960d29e-f82c-4a38-7ac6-08d322003406 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB362; 2:Nxm/g/1ZJv+A/5yWgoS8UkesOLe+GdnL0GZy0lp6eNrZnZaXIKPGbAo9Ouz0PEoz87psdBDhcY7St/fwj1LRWz0wrBpIPOwJrujC8hokw/R5EIKoFC7GK2dtPQD1wSgFX2BtvP2s4bfJz5yWxf2YIqOLhvA9/IchzyZIJLvpQRQPnbwDjU96P0YRSBW9QYqZ; 3:u1GCAH9Gt8iyUNAIKB02thL8TwEciZpYxABA/Npw5oT8PGZORWbYt2nx9e8n3pXJM9ZDo5zZ3qs3PJZC2BA6ogFsc3rNmp2cK9X7+W6Y8BiO5eTu14ocpwUfl9JT5S9ussVuG1D09YaDp9UN7l19s9EDv//hCVb1LXO5/R75gO8qxgQlITtzJL6XDWl1fxkBWlkJHFdZ/FtkqsJHjO4C/M9ULPeCsEZ+DdAJkO2/7co=; 25:y/AWRYK+vQryJJ+sLCQLvWmnFXiYsfFIHLZfJsQTsimBaR7RJqvgOXzanRguJYZMic3ZNhMchPrTFGagmEps2JQrMBr0ip0Eg2LRdi0zEieB6U0GyB6+M6tFElYpf6KOGHWSF494p6isthdW2pJXhOSJhq3vLLtwcZTY74fgMuwHmZUccUysNsbgMxJvG2b68PDbmboVRboopwqSNccbdpCbQit/J6PGia4Qs2YK9t0+/SWy980nXM0sEaPhjnK6 X-Exchange-Antispam-Report-Test: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB362; UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(13023025)(13015025)(13024025)(520078)(13017025)(13018025)(10201501046)(3002001); SRVR:BY2PR03MB362; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR03MB362; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB362; 4:Rzo3y9thHVDMKNGYYmw1WSmwlkpzNBdt9QyeGyGEnWpun9EvyfRJGPpTwnqqvZ8XBilXusyixCxOmtixLueIYv27imKruBjhkjHnHQbJiybHv6njHg0FSAO2OWBVX7MLGUQV1kEi47cnj+u4awuVit5LTzaaDN8GPzZR/SdkH9EPy5doHJPeg+6jXg4xMSP5Q5mNZ/9N8sIkdgLCTFAdXRvhYKsDPPO5+9tdKq9qFXGxtkmRd+G5nYYE5puKNkSUwxN/ykw84/OkLdajvcc2KLjNyx1+s+0XSKvUfCUp4hftCm1imo2V/1yz8BjXGO2rOdNRgp0i6WsYl2nqXD8mlnS++AnT9o1M77oA6wc1w2yobS/iiKWaOIKk38V5Vyc5ZCAvk0tjBFsCn84lL9TDumSDw1uv8FMDSVQm2Nj9WFtf7B63rcKze9pbHXn1Qsr9snQC1LNhYUtROKEkt+kuMdjdanFaeO9aPnHsvYpjSgMmWR0RIGEC8XRVR09/EfLW+QmWpFJKDfS7a7QDhVF74w== X-Forefront-PRVS: 08286A0BE2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB362; 23:2X48g28D00RBZUgvUJmYzciQLrNGZSvX74a0b2Wvk8?= =?us-ascii?Q?WWNtTUTFenGL58i4ndyZMbgPZqaOL1mDYKEd8QOTDh5sxhchvdQRY5rEPDU6?= =?us-ascii?Q?Sn0vN3lY6w+/zPVpBbsunEXGrG/SGpxEIM0yPxKTe9zmQcZ6wWkGiQ3c79lk?= =?us-ascii?Q?J0dubDjIjirZ5JwZ/TYDJwlIpVz09upXsSsSE6W/HUnyKR+Ku2K22mtqlRhs?= =?us-ascii?Q?siDw9SKJV4zlvuMEQlgc/0DOmH6RZq3dsgFfkBrOQhgzkVfp9VOChxOHK07u?= =?us-ascii?Q?Cog25/Otsmkr+kVbLZp8Fp1fo20+CUXrkFvGIM9doUdzoWsMo4hmafYQgbmX?= =?us-ascii?Q?/LMpipOT8OPYvlEUv3gOoytRBxGrq0z+cMraVSbFLslG08IUt+lNeyM7Z4kA?= =?us-ascii?Q?+DSBSH0a8QtHjhmk5clHOymzZMM+YDAMWcjx4Q7Wc3qejmiOr/T+LmMAmvlq?= =?us-ascii?Q?8DluExPkF9y0uJqruLvBGMsTNtAxYfvDwTG0ilNgETCVbNh+o/ZV4or7k3Xy?= =?us-ascii?Q?dl9U50vIpINY6rCfRs2ULWJNKiCJpQJuVr/FSXtb8EoaoYib0f5gnkGwGfGd?= =?us-ascii?Q?HtSZptDBlhatyMQkcQcdF3480KG9AK7yDjOK0q4adL4zOuLIRmL39a8a8UAV?= =?us-ascii?Q?Ae5z28P7xiQYV0SxSAwP0/hhdSZM5zV44X6h6xPOsjRS/8HkGtKSB7S3IQf8?= =?us-ascii?Q?yj4tZWvf7Mkr2K4UA3WeV2WXb29IsXLdjhPMs/24hN8YCom87liG6NO2ug+W?= =?us-ascii?Q?8aOxtoLnpU2JYGHLhUtqiMuOqA9Q97v5pQD3oYLmprNYaDmxM3J9bF1Ig9gi?= =?us-ascii?Q?is0a/O4QraHuHZvDFraHQEemnxMGCW8nnAf0cG6HJ7tSVgmgJ9lNoh3ftEWM?= =?us-ascii?Q?fIcBgStGxjBF49yDWEfH2xQ2aDFxFA40WUaf+H++FC9DS1fVTTSmP8G8/mo3?= =?us-ascii?Q?p09gppNmwQ0y2S+kDU6BwzTwQVKHKjw/Wo3Znz0VVaevwD3MZ7dQMWyX5UMF?= =?us-ascii?Q?UPX/byQnuaG9Omi0qQUZLcBi8IoERXjd9ObXxH7t3GpnQKZIHpWDXFRQxsbl?= =?us-ascii?Q?c/+og=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB362; 5:1nifdwXSjJhExpPSSnVL0HADwSEk/5dQV4yoRuBm3/yCm+NlOY1XHKFN4XPQnkWr99fnwc5bHFMz3PZZ9YMu3CZ58HRM1GG/RMIRjZnqHRHIc6TNTYsTSHIquNMBmJoxaPtsoGPtt9N0UkXzz/goOlcwubGRiB30uZJrv3bKFTc=; 24:rA+ttWCnGyj+NO6T7t2MZJfVJhVsrthYR5+e5wcfpb2Drro+1utQXNA8KrS0QRox2cBTLd8kYA2vh865exwlZpn9qgSOLaTLHKQT2pGIt1w= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2016 01:14:23.1191 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB362 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: oss@buserror.net, tglx@linutronix.de, Zhao Qiang , xiaobo.xie@nxp.com, leoyang.li@nxp.com Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" 127 is the theoretical up boundary of QEIC number, in fact there only be 44 qe_ic_info now. add check to overflow for qe_ic_info Signed-off-by: Zhao Qiang Acked-by: Li Yang --- drivers/soc/fsl/qe/qe_ic.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/soc/fsl/qe/qe_ic.c b/drivers/soc/fsl/qe/qe_ic.c index 5419527..90c00b7 100644 --- a/drivers/soc/fsl/qe/qe_ic.c +++ b/drivers/soc/fsl/qe/qe_ic.c @@ -261,6 +261,11 @@ static int qe_ic_host_map(struct irq_domain *h, unsigned int virq, struct qe_ic *qe_ic = h->host_data; struct irq_chip *chip; + if (hw >= ARRAY_SIZE(qe_ic_info)) { + pr_err("%s: Invalid hw irq number for QEIC\n", __func__); + return -EINVAL; + } + if (qe_ic_info[hw].mask == 0) { printk(KERN_ERR "Can't map reserved IRQ\n"); return -EINVAL; @@ -409,7 +414,8 @@ int qe_ic_set_priority(unsigned int virq, unsigned int priority) if (priority > 8 || priority == 0) return -EINVAL; - if (src > 127) + if (WARN_ONCE(src >= ARRAY_SIZE(qe_ic_info), + "%s: Invalid hw irq number for QEIC\n", __func__)) return -EINVAL; if (qe_ic_info[src].pri_reg == 0) return -EINVAL; @@ -438,6 +444,9 @@ int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high) if (priority > 2 || priority == 0) return -EINVAL; + if (WARN_ONCE(src >= ARRAY_SIZE(qe_ic_info), + "%s: Invalid hw irq number for QEIC\n", __func__)) + return -EINVAL; switch (qe_ic_info[src].pri_reg) { case QEIC_CIPZCC: