Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752138AbdHGVLo (ORCPT ); Mon, 7 Aug 2017 17:11:44 -0400 Received: from mail-he1eur01on0102.outbound.protection.outlook.com ([104.47.0.102]:13680 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751761AbdHGVLi (ORCPT ); Mon, 7 Aug 2017 17:11:38 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=stephend@adiengineering.com; From: Stephen Douthit To: seth.heasley@intel.com, nhorman@tuxdriver.com Cc: wsa@the-dreams.de, danp@adiengineering.com, stephend@adiengineering.com, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] i2c: ismt: Return EMSGSIZE for block reads with bogus length Date: Mon, 7 Aug 2017 17:11:00 -0400 Message-Id: <1502140260-13789-3-git-send-email-stephend@adiengineering.com> X-Mailer: git-send-email 2.7.5 In-Reply-To: <1502140260-13789-1-git-send-email-stephend@adiengineering.com> References: <1502140260-13789-1-git-send-email-stephend@adiengineering.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [96.82.2.57] X-ClientProxiedBy: DM5PR06CA0048.namprd06.prod.outlook.com (2603:10b6:3:5d::34) To VI1PR04MB1360.eurprd04.prod.outlook.com (2a01:111:e400:5348::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c0b8fcb-d0fc-4064-5c7c-08d4ddd8e1e3 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:VI1PR04MB1360; X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1360;3:Aku6FUbLXTOmqtq0jjFviLoRo/r3SBwcD7+u3bFX9WxWobJGTl9L/Ce+D/s0LsiL7nQtxB8TiXh5F6jN/jNozKmnt8pTT5sl4Q7cBYdKAvsnOb6tPRFGZGU2wPC8SfO2er6aDLtTNIyu1poqbPty8pyCXEWtZTcQou3i1sHyiSyMf0RaMiK3FDsO49WyAJPTIwLZR1tlo3PY1n2tcrL3E7glWCiMH7Qz7t5ykLwazXrDK5LhpvB9XCTz/sZ5nsoy;25:HZbi9PYwb/b1Dj6DIbh2Kq6UOz3A5TGpIT/qFCfTEHj5Za4VMkk0VPx0MM10KUru4XQzuH2j/DVXPFONChkVwT2HOzAa695dbspTifGumjOVQSNmO3GfrUji2dz98Wcccp51CKLQlee6hc4nU2dGFNS0BrlpRev/Kh9gc27xMExL/PajA87lYGOGaam5WT+YuafAazHygsiNJvjB7Sef9bW9feFenrEQSMrfgTlvQ8ipmU476PSAXxWU8Id2aBTjQHLANcgHD0iYYaBmMBRLEHROKmRCeeCD38cDVzPAng55hyDg97w7PJYZTN9ZirQUyobCcAnmYnBBLrPaLPc5oA==;31:l4Rgo57RFevNh1Pc4jz0tfc94cngOjFJpPrQXiwuWJuTOmFYRE5vrz8Wncx5xzv/hw4OWIEgxOP7oJx3931EGLC88v//6Zk2N0R/TQCSPKHdj/xDc5XDbM8OoAn5p0JI3sS3PuWMZxiIiGg/TYsUtvDyQQP3ytKsvFaVkoeuPu0oXZ5NCAz6gGBm5t2lJMEoI6GDrFgyns+JA3CI5PYX1VBvQN5oq5OhjVgCJPLy48o= X-MS-TrafficTypeDiagnostic: VI1PR04MB1360: X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1360;20:sjUoDBHLWDl6ZSVI3HEO8ysrfPOp645/o8zbQRUpvD1xUneGdiAmxKGqx8qCvattUdlYiKh/AlPJrDA0fjdG60IYRPG7oXWw4z/ia/wtbNAsSGIgfJY5ABve7mNo7f8FQ4ucz7NT1QecCXY1eyxZ/CTJzUbEeoQ+WoKPjT3kRghQ37kehMy6zPGQSiG77ZxxeeHqVMyiTnxAJzf6fJTRZGB+88K3To7klQ4zHStkg22lihTdnngpmT0HM6v+ylNiB0BovDHIBzqSlwiggij6+U6lwNZLVwzmdKUNTISkOiO9My/VSELVQLh5yAUcx7+lLbWWm6X1qhd3vDETVhm5YoU9LlZOFq4A9gc6IJONrpYsrMK99vgqUjTQlT05YAKqhxvV3rETEkIqOKjDnXGtxFiGe0ZUzx2lfYnOhHcfHXQ=;4:M+O9kuA/nhudCvk0LVHOFblBQnwWWzj/wI3I3mf3Tqb+1XiNVq/V4lQpqfvTHAYNJXmr9Ijm8/xwahrxYtXXeUafO+/ODixGc9ydRAnlk0/xe9rDWaGKTesez1XhOG50qK7Mjm80L5Xi8pCpJPrSrclKjLdDfCnJc80pnDOOH9P+uY/XvixInxDFRJT/AWidFFbWC5BuSYef1AcPQAQtpyW81TQ5QjaOEHJhaObLXkc/EY7QkNRnbUdJpeFffQU/ X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(20161123564025)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR04MB1360;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR04MB1360; X-Forefront-PRVS: 0392679D18 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(7370300001)(4630300001)(6069001)(6009001)(39400400002)(39410400002)(39450400003)(39830400002)(199003)(189002)(6116002)(25786009)(6512007)(53936002)(68736007)(110136004)(38730400002)(478600001)(4326008)(305945005)(5660300001)(6506006)(6486002)(7736002)(50226002)(48376002)(8676002)(2950100002)(81166006)(5003940100001)(81156014)(50466002)(7350300001)(86362001)(189998001)(105586002)(2906002)(106356001)(66066001)(76176999)(6666003)(50986999)(47776003)(97736004)(3846002)(101416001)(42186005)(33646002)(36756003);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR04MB1360;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR04MB1360;23:yo3C5Mu2gqtjauplSQz1xDbZNOOPqJabkpzMYm10G?= =?us-ascii?Q?784BNBGj8n17z86cW0LnfgigHsdsFQP2byBCbI8fsAiXRXJEy8XNjldGaEl8?= =?us-ascii?Q?kOxi6N8oyzsYPWP2P6B5CFmexNoT0uS0eR1Lu7AQKdrHt/S+fMQobjHlMyUD?= =?us-ascii?Q?xiXwVVJaNBJe49x6LFO5QMaEZh/jfAsBoLqrlrCAXKaZVa1+PfCu79k+ZTsw?= =?us-ascii?Q?pBBRFSmHz8G2o7/6rSxJtPLq12lWZ/5zlKoy0+3Jz1bIpXKHy6+/a7ZzBDZt?= =?us-ascii?Q?qLHn6UqN8cZM5OZE5Lfqcz4OPFDf90mhWvqTPVT7RUnQr9dO8mFruBCTTe7a?= =?us-ascii?Q?62Ca06pIbcPDnOUujL7SNJFFVKIf7kl3byOP+HXF1jzEUOJg0y4+7VA/TQQ1?= =?us-ascii?Q?QfwuMA9KlPJpwjU+0WLcE7Xb7xJRHmOEiXGRaXe3L4QVvA4RP+33quGz16/C?= =?us-ascii?Q?IQDaMXHOyOYAlVcEB+4aFuzzQzeGkeoWB4t2QVwXnU32JIWEin2fBYWqMaKX?= =?us-ascii?Q?Kzdxtg7SJQzYdxm5P3qHXWnHTzEsuVyRO3eTwk94CGkbBVbhdlfMncvL4xC8?= =?us-ascii?Q?xwIiz/U688DUVs+6SEqlTqPf9LPBdwUGW7uKQTWIcKqYLi9QuVyZog5h4C3s?= =?us-ascii?Q?H2CY23JB80KzpCzWVGja3CC9QiZ1b7ngBrh+fPkFrJWp7M88/cyMmIGaehMg?= =?us-ascii?Q?KmbRXChpHMhJZl6tHiC+z43M1tC6V13VtHrI4KQLS6IVIbquuApwpEOXCA3B?= =?us-ascii?Q?C1isH52Nci7U/KvuW8oCQCXqO4MxJMHUmIkBS7LZidIoHI462cFkdMbkjrSA?= =?us-ascii?Q?3uSgv1JJOGq7g1/++APEbvC6eFT5Ogn0NZ/50oBHcrX3FHSLFz5QxuazZuWQ?= =?us-ascii?Q?0ll1Mm2l3Q8c7rgDoRXPqCQHVNCu0ISFq0Q56g9H/7q7hcLeeqT/vp/1P5bv?= =?us-ascii?Q?niyJIVEB4bOaikemKrQWjKZVtVp6t1VXVMDRyyFZOojWdYsQ9p1ljuY4GHWy?= =?us-ascii?Q?K1e7p2T+7V+q3HzNMinYLfAHCht/FIz/3QNNaBaP1OaqU/M7Cy+dwrtoeSO0?= =?us-ascii?Q?316ejhnhdLAhbppp5QFKlGiTKeOvVoJz3yBL3/iQ2oovKnZ29fmuZS0AmhYx?= =?us-ascii?Q?FZzX1Oegl65xkNo+iX1RN4dG3Jv3XyLAt5YpKleGRr5n3z/Ny8IX6iPpNBpg?= =?us-ascii?Q?t2XKZkDZat/0kWCvyadjg+cPWoA3LPU8aTb?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR04MB1360;6:WfH2yBHKPyLvSBomBec5G/YcbSJ9enNG/VL7fGDC/HEFreSzYTBoEx7VIwHJDXB6p/j+YKnmlOkwzD6sgccYJsHi+Fjq9B4LsjQ0B9l5qQbNkyhRr4SPHYAS1Z8hnLpz4nE8wXzE2tUt4e8y+0uQLadxthbydIDe8VbGTTb3KkU728a4wbVGFWmCxqbck2SBw+zBKRWP6MpskOvGpAPTn/c76KKK6zT9fHpFApgEKUuuBTNcWdi+VHsw7y5joVu8zSUrEOMTTKOm7trGyfJOxNnv5ws2w/ZeCyQd/9Xf1cfRAq60oODgayQQ3y3GH4weIHvl7FnvgK9CdOXljaDDIA==;5:GV5pTfaPrzSRqQgs6Fv5GR+RUQ8i8ruY9lDjs+z596vHmPEtfP5/YD7ZQpgf8FpvBsVpsj8xh6XZopzzHCg13l+a7Gh4BezwM8mLb5A6+GhtiG0RG9KeU949FPqYNJ+cfuk9rkfAkijJhvlog3EkxQ==;24:41rsYGzReYfhDe3/o0d69H7s0WyO2ceymxba6P0Uh5QlARR+ljzwnZ1ADZR8LUsm9LrN4QWzcCnn6/eS230Cqkfa8Vxipt8ICNYJPKEjlr8=;7:Low0JVphRc1RU8XHOB3ulZ+7SO+OYYHoZGpnWLvSeoasS9O614iWjA3t+06vam0prHV5Rn+Dptzp3UuY+axmAKK8VwjmmwOxjcZ+RAMuqoWXQfZ59Fmyt1zd5TPLLMgN1WQhPQTDIv0eJ+sSQqXZxiLnsvhdBRQBuHdeVZIWaYVUm1HOmnRhclgL4mvujB6BdYopFhvV5mJYiuelroDZ4OAOazuBuS3WxK6pdOitViQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: adiengineering.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2017 21:11:32.1968 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1360 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 990 Lines: 31 Compare the number of bytes actually seen on the wire to the byte count field returned by the slave device. Previously we just overwrote the byte count returned by the slave with the real byte count and let the caller figure out if the message was sane. Signed-off-by: Stephen Douthit Tested-by: Dan Priamo --- drivers/i2c/busses/i2c-ismt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c index 9af2337..22ffcb7 100644 --- a/drivers/i2c/busses/i2c-ismt.c +++ b/drivers/i2c/busses/i2c-ismt.c @@ -341,8 +341,10 @@ static int ismt_process_desc(const struct ismt_desc *desc, break; case I2C_SMBUS_BLOCK_DATA: case I2C_SMBUS_I2C_BLOCK_DATA: + if (desc->rxbytes != dma_buffer[0] + 1) + return -EMSGSIZE; + memcpy(data->block, dma_buffer, desc->rxbytes); - data->block[0] = desc->rxbytes - 1; break; } return 0; -- 2.7.5