Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp10740714rwp; Fri, 21 Jul 2023 04:22:52 -0700 (PDT) X-Google-Smtp-Source: APBJJlGn+wYfjKUd+RlMrKX764s+huEvtwckL6sKH1AFiG8KpDmYlT3SX6j8K+9TibEcV3JOPhTo X-Received: by 2002:a05:6808:1410:b0:3a3:5fc6:3ba6 with SMTP id w16-20020a056808141000b003a35fc63ba6mr2281997oiv.42.1689938572672; Fri, 21 Jul 2023 04:22:52 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1689938572; cv=pass; d=google.com; s=arc-20160816; b=bCmYKDkl6jT72EDY0F7R/flaCGgCsopMQxFu1eEWH4irVScTRx306Rs03CTVErXA+p YIKUaFZrM5Enml+7kSp2oOgSQxVni65MUitI6l45fcad7HdNOnpTLU1GQ1A7DbI+ziKY 9S+YDhvgnDPggvtQtZsJhX2P3rwpjB0CybiXR6o71Y56SXwkoXVzpV7Q98hro8T+I4S5 3MX1TpVaXzbRpLJqOBzYGyF+d3Lz0hAaKeCMEq4lNhJkYrVue7JQLZYjC/ms1E/nFJvm ygKL1f5WR0wT812438x9dQ1FDnQMR2OzbekzXC0mBQJkbiKL3DHpeO78y+H6T3U3+1iI WZhQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:in-reply-to:content-disposition :references:message-id:subject:cc:to:from:date:dkim-signature; bh=cU+2/tQw7Lgh6LFY9WNYtssKwkh3+tiSMLjYY6jtsp0=; fh=mLuUccqxcEkG8sxUzp7j9Fnkb8RGl+pXy9B9jfsXetA=; b=OM6/mK1H08NupZ2ZoO2AjaOc1l4ajHpeKiwo5Z6X3KPY/52V7a/eEl62rT/TeP5dgQ tto2GIQ6+ixcMs0gP4/ndJEJsov5X2lNUEX5uX+xJ/KCaT5ArbSIKLRzce0YRxPXUdYS RdU/DrGSK6HgdMb1Vy+i9lhqp9Kz/pigoTjaodA41INvjsmWHghmIPCtSl+b3bXKaAJq H5KwTaoBOiqmUFASpsxdS2fc6VEEfHO32R4rzHZAhOawkRaq9jke9CTXb+QEelhUSYPs 2Wpz8NatWvLKBzJVsR1Z5luuJQ7WCZ3iwHbSS3isiBzKv4HFJbn6GscSykRwfy/vxQQK v6kg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@corigine.onmicrosoft.com header.s=selector2-corigine-onmicrosoft-com header.b="HyCkI/N0"; arc=pass (i=1 spf=pass spfdomain=corigine.com dkim=pass dkdomain=corigine.com dmarc=pass fromdomain=corigine.com); spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=corigine.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c5-20020a17090a674500b00262f7dccaecsi3004991pjm.170.2023.07.21.04.22.37; Fri, 21 Jul 2023 04:22:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@corigine.onmicrosoft.com header.s=selector2-corigine-onmicrosoft-com header.b="HyCkI/N0"; arc=pass (i=1 spf=pass spfdomain=corigine.com dkim=pass dkdomain=corigine.com dmarc=pass fromdomain=corigine.com); spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=corigine.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229786AbjGULNR (ORCPT + 99 others); Fri, 21 Jul 2023 07:13:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230287AbjGULNE (ORCPT ); Fri, 21 Jul 2023 07:13:04 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2072c.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e89::72c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A5D32D7E; Fri, 21 Jul 2023 04:12:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vw3NxsF5HGKV2GzX/AocCa/XSqphyWo5TcanE00r5HPPaogKX1qyTN2IBIlvLmOpp+2BSJkKR74QlHqhcX+4ZQW96b9IMY+5G/qs8FYXnV7B70q7jicpoGz/ItxSi4Lnw34EACQpT9ZAP2vlAE8EwzSLqEvJQ+ZspzIoxb81fX6K8+Sp37VIeRamHKoy2jgwv7MsfaWBNFNHK0UMZLt+ndeWjeOUAXBvaesGuFhLUrTHIY2vZEvxoywJz8xuRJaepj6JKeA+g1Lm890lZvzY4QlA4K8t6W580n/iJH1xP3hgEwNCpgHpU93GqudRY0sd/vYWG7Z9x+6kqmChjx9W2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cU+2/tQw7Lgh6LFY9WNYtssKwkh3+tiSMLjYY6jtsp0=; b=mGikOmMCPNFoXaDof8b3g8hAG0lLiqidvk2BJ+UpfTZV+vzSx+3vfcRe5pWSBzXrN7MH4buLx9lGPyg7H1d5Sl/K2nYC5Vo3/MJLCN4e0560OTj4UfjpF7vxGnqRnj5PKUFIzR1INch6lW5deGaJlSUpqZ/1RQ666VqRAFIRviBxeSi+sXLIOqegE0otqn/EOnDCIpKfMY6POqLovgRaggIHwO7VX+25Y9l6+zTzkg7J/DSSg2EicRI29z6Zp+mGMmTI15U0vtfyv0br5dOY4IjyQIK33qYepUZ/JsbYO12ETHNRuxbeL/xsfKfn/Lu7OZJUm3GEbkrVBzE97cfnrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cU+2/tQw7Lgh6LFY9WNYtssKwkh3+tiSMLjYY6jtsp0=; b=HyCkI/N05IVjf9AB04h3KQUvqk2swjnAbrQbsXIkOz8/sdCrt8qf00Lii++ryEKHjM+bh3HssrapuRbkuIyq+zBspAwH1jc3e6cWcKDJomtp4zgwavetScvLdhjsHzVm6iBSij5Rvb1+2b2a/UeqxCy96JhgVbItUyRor1Z+dvc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) by PH0PR13MB6088.namprd13.prod.outlook.com (2603:10b6:510:29f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.33; Fri, 21 Jul 2023 11:12:25 +0000 Received: from PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::fde7:9821:f2d9:101d]) by PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::fde7:9821:f2d9:101d%7]) with mapi id 15.20.6609.025; Fri, 21 Jul 2023 11:12:25 +0000 Date: Fri, 21 Jul 2023 12:12:14 +0100 From: Simon Horman To: Ard Biesheuvel Cc: linux-crypto@vger.kernel.org, Herbert Xu , Eric Biggers , Kees Cook , Haren Myneni , Nick Terrell , Minchan Kim , Sergey Senozhatsky , Jens Axboe , Giovanni Cabiddu , Richard Weinberger , David Ahern , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Steffen Klassert , linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, qat-linux@intel.com, linuxppc-dev@lists.ozlabs.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org Subject: Re: [RFC PATCH 20/21] crypto: deflate - implement acomp API directly Message-ID: References: <20230718125847.3869700-1-ardb@kernel.org> <20230718125847.3869700-21-ardb@kernel.org> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230718125847.3869700-21-ardb@kernel.org> X-ClientProxiedBy: LO4P302CA0028.GBRP302.PROD.OUTLOOK.COM (2603:10a6:600:2c1::19) To PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR13MB4842:EE_|PH0PR13MB6088:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c6e738d-88d9-4240-6bd8-08db89db5c7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6aGlMDWHu1SSuy0gL9m6T5zdfAhwOKjzCgWHjjrIh2dL7Ez0LdpeK2tDQ8JZerRBxcFZoFCu29KUOgarPabaiiAQKB1PlHDBUi9+XosnZD9u/3k3xK2nRIhXjMMOlZBngLCxBJ8myxfSYlfwSwHC+8G14293oTBqsDvHc/5xwz2Myr8ef7Oe7joLLdEP8+JSudeqX8oXt0fmJArOLc+bISGwDKMPL8bdlkhqyxfe+RvyWisEUD6sZVZTl0yjzBv4dEbs9W+gPHW3VUbJElf8enQM2whrc85rXrFtSpqLF8xNEXL9F5e1fYfhmdeuKdaMKeE1M4Kh/PzJdPxajZKDloOEPDScnMYRNGXXEQu/WAaHqr2G5awVlK9SBBoX0NqpupOZg14IKogetFk6yc488MNWVW3T+XM6pJGChJnRTiCIVuc4Y1SmKjtCmLEmdwyQkfte01vOuxdAIyDzNRxzDsffufZNT2bz2ZdOPT9WXw/uh9sPG6Ig259sp6tLjTbuhjoHR/8+jCQGisI4w5RQPIqytx4l/5FJ+mvAnLZKuFolHgB52l7wlFx+VMWuBn16mMBG4lUkSGdnehXDdbLW7LMfYzSah8kpSl0W4KKo3uM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR13MB4842.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39840400004)(396003)(376002)(346002)(136003)(366004)(451199021)(54906003)(186003)(478600001)(6486002)(6666004)(6506007)(36756003)(55236004)(6512007)(2906002)(316002)(26005)(66556008)(4326008)(6916009)(44832011)(66946007)(5660300002)(7416002)(8936002)(8676002)(66476007)(38100700002)(41300700001)(86362001)(83380400001)(2616005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wDkeWT1ukwHyxMwHgDU2PP/nJs61udZBcUW2sQAjuZ9fZLekq03Y+QKM5Qrd?= =?us-ascii?Q?hSBe5TwxllaGwyWfFA3XJ7gZml4/+ffXZmXGseCgK+tShcWhPaEa9pYtY0Nx?= =?us-ascii?Q?dpWPHfKoBARkf+AZ0+qALjPVjLy4KCYS1GxrZkVCgXNM+Izlg5D4x8AGuAfh?= =?us-ascii?Q?ppoJN8KakPT2bnd0oe8xxXD8O1kuvpCZw8CapYFCcJqoz5DKM3e5U6kLYa3w?= =?us-ascii?Q?jzgI3tgEggsAfWuoIWkV89Swd/aCaKwdWHzFFnwwztOiBT7rQRb70xz3b9OJ?= =?us-ascii?Q?XrXwwuoz1AA6yaYxioiv/XB0g5WDqSJ2HuJjdajq1r2zA/ZcswbnBfdkWDo9?= =?us-ascii?Q?u3B6pitU7efiuK1/+MbinQRBZBKpAHYEkaFIgoChpqDQgG/lBkONvUspTSCc?= =?us-ascii?Q?ytLXfmi1Z5Qs64QgxbzRdHHRpVTc/sNcYupKxaxg6nKs6xYrSliuPwjvyWv7?= =?us-ascii?Q?a5QcNTxGcQhZz2A9HKFm4Cuz4aRASVmVZr23VJq/a/Tvxx63KUcz2MU1Mygs?= =?us-ascii?Q?gE++gGO8QgqWDINd24wvEwSF6ZwmLWyih8TxyLtje0TCgeeDWy4GAR+ILajw?= =?us-ascii?Q?6W30SuLEFKIGhUnKENt37XZugz/65CPBHrp400LGK5ERuuqgZ/VF/ao7RFJg?= =?us-ascii?Q?UmO9p0NqXnufK1HgSoH+aQIOobmUXYrvFTPmZHBdiSKQDR+Z+MFLFBFVOqbU?= =?us-ascii?Q?QOx8N2B/z2ffHI53ptH6s9JK8xeJaTvoV0g4KYzp7O8F2xiqZOclbFOsWKC9?= =?us-ascii?Q?0Z1zmDSHdYW0zDSjaH2JzTHsZwy+laPFcK+NQ0j4n+XRtsoCz75720B8XkMa?= =?us-ascii?Q?KRxEOXzlvDeNN8JSnjRDSjC8xPd6G+lIQ4tEgYrUj0spMWIzOjG8yavT3ODP?= =?us-ascii?Q?Ecz69a8g0Sjuyr0G4pauDl+ZAiz8ckte+6VLzlKDuNfuHAX1ry5vlq0ije2r?= =?us-ascii?Q?Kb5dzJwC9xWrHVh0DR3NZy702Bk57XlQx5Deh0HQNxaI3xv6QH8ubUp6K/tW?= =?us-ascii?Q?clxv/t57wIyKO0oqVOQaj4sEtBfOvOlA+92J9kcT93/aA57ITJvHunAuBLfX?= =?us-ascii?Q?w6QDUzmynAFOMK8bE+2R+pD86YOmrDYIWSXyk5lW6KR4JQAzmzDlNrPDFHRJ?= =?us-ascii?Q?wdrS+NsbrmmLdH4WtS0La911VUzcENWaWOHZj+XlernDUZ/GUUJH3828rTGy?= =?us-ascii?Q?ojDcbXk5S9NVuj64zYcDbQrbGwQXAZpYxVV+o5M/DPIRrLEiARkZzGVryWpx?= =?us-ascii?Q?QMO2KfR2LTiHUhrPeOiRpgb+Iai+tAr3DiLdn5L+J9JDGQs3FYp6K41OV7OQ?= =?us-ascii?Q?d4c8t6w4Z+BfUO8c4hSaJTpo/tQjiBh/G6bCPVSyG/11ynoNbM85pyLOItiK?= =?us-ascii?Q?bFDEGLPcTJI36p8GtNQy9hqn75ekFA7KsHvMEiQxZIAf5XoK6I0xFaT4Ul4w?= =?us-ascii?Q?xWcAcUvv7iMY+6W9WvFNQt70/QQKxxztIexqZAaRq8D7HMs6+Q1lVHCIHRym?= =?us-ascii?Q?vSaCH1a7Lz7IG3FG2G0YzOU5b7xbKUqONL+xvE3aLc3nQEQixsVnddbBxDy7?= =?us-ascii?Q?Nl6nScUqRgR31k25aOP+EL3McEekuN7Edcvz1s6/CdqFc8lEY7C1BoaVR+38?= =?us-ascii?Q?VQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c6e738d-88d9-4240-6bd8-08db89db5c7f X-MS-Exchange-CrossTenant-AuthSource: PH0PR13MB4842.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2023 11:12:24.9418 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IOFpdaL3NGUHyu26AFk/VqYr8arQ8H1RURAxHv6E5n/wrfFHrcvmpMpHzMWMwF38LIaEmSR32My8w6hvQ5AD+eQV68hDM/oPkyZSFBJ//7w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB6088 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Tue, Jul 18, 2023 at 02:58:46PM +0200, Ard Biesheuvel wrote: ... > -static int deflate_comp_init(struct deflate_ctx *ctx) > +static int deflate_process(struct acomp_req *req, struct z_stream_s *stream, > + int (*process)(struct z_stream_s *, int)) > { > - int ret = 0; > - struct z_stream_s *stream = &ctx->comp_stream; > + unsigned int slen = req->slen; > + unsigned int dlen = req->dlen; > + struct scatter_walk src, dst; > + unsigned int scur, dcur; > + int ret; > > - stream->workspace = vzalloc(zlib_deflate_workspacesize( > - -DEFLATE_DEF_WINBITS, DEFLATE_DEF_MEMLEVEL)); > - if (!stream->workspace) { > - ret = -ENOMEM; > - goto out; > - } > + stream->avail_in = stream->avail_out = 0; > + > + scatterwalk_start(&src, req->src); > + scatterwalk_start(&dst, req->dst); > + > + scur = dcur = 0; > + > + do { > + if (stream->avail_in == 0) { > + if (scur) { > + slen -= scur; > + > + scatterwalk_unmap(stream->next_in - scur); > + scatterwalk_advance(&src, scur); > + scatterwalk_done(&src, 0, slen); > + } > + > + scur = scatterwalk_clamp(&src, slen); > + if (scur) { > + stream->next_in = scatterwalk_map(&src); > + stream->avail_in = scur; > + } > + } > + > + if (stream->avail_out == 0) { > + if (dcur) { > + dlen -= dcur; > + > + scatterwalk_unmap(stream->next_out - dcur); > + scatterwalk_advance(&dst, dcur); > + scatterwalk_done(&dst, 1, dlen); > + } > + > + dcur = scatterwalk_clamp(&dst, dlen); > + if (!dcur) > + break; Hi Ard, I'm unsure if this can happen. But if this break occurs in the first iteration of this do loop, then ret will be used uninitialised below. Smatch noticed this. > + > + stream->next_out = scatterwalk_map(&dst); > + stream->avail_out = dcur; > + } > + > + ret = process(stream, (slen == scur) ? Z_FINISH : Z_SYNC_FLUSH); > + } while (ret == Z_OK); > + > + if (scur) > + scatterwalk_unmap(stream->next_in - scur); > + if (dcur) > + scatterwalk_unmap(stream->next_out - dcur); > + > + if (ret != Z_STREAM_END) > + return -EINVAL; > + > + req->dlen = stream->total_out; > + return 0; > +} ...