From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by dcvr.yhbt.net (Postfix) with ESMTP id 204E51F6A3 for ; Wed, 28 Dec 2022 18:00:43 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=o7QIMe2C; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233788AbiL1SAi (ORCPT ); Wed, 28 Dec 2022 13:00:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233656AbiL1SAc (ORCPT ); Wed, 28 Dec 2022 13:00:32 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33AEF167C0 for ; Wed, 28 Dec 2022 10:00:31 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id y16so15544046wrm.2 for ; Wed, 28 Dec 2022 10:00:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ykWqZXWyl7svJ+WNwzbKCePyys9rgWLoCf4uryIgFVk=; b=o7QIMe2CPmfRtnLIsbwkCEtvzbystEA/zwe9X6EFXOkrZjf/0gXFmloC/jAB8ikQtO RccrJdaT6s8DLKz7xBrswllvYpglGwhBVFHNA2Jn3JVFcM28tEBFAwntjKA3jSo8V7HR puu735EDbVCTP4hhHnu9p3hvdU3vASvVjRT72LG16QDq4MRD2sVala5MiHIwZ3TBFYCp 8qWmoXqD4hkE3q1ks6rYeTzrWYbZ2X0elDwuP5Tx7O59ovpE/t4aEz9K6GyP1Vzngirg gQXAOfOrgBiplyKaqQiENGay6ntoCVmPjfSx7bxNi05F9SE2IAQeRItfrFw7FCKUZxpV ytIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ykWqZXWyl7svJ+WNwzbKCePyys9rgWLoCf4uryIgFVk=; b=XGFtQRzMNglUA5eQSo7vYFcP3Q43HEyGBt4jC58sRsttWDV48pDqgimGOAwZ9R6IZv ALaIDQSlfVSJlSTQRvj0KtzTTPLSUuzLcmFHZRfzOhm0RVcota0Ra7DL8GxjZNtimEes HFEyTsEBbOtefE2bC9tTvPQ5J9I5iyLFyJFKM6mq4EwKrkIpai1/Mev7iwamVUmpucsA 2TKfcEIG9VyIy9ahx7eLOqTTIchN43IT8aWx+6PBw0uPb5nDopWsRHObpP1sVDu2//S8 BseToc9dgjxkkrRfeqr1ys7E6glZ02swBkq13P6s5+9tHl2grBbZLRmKwWq6iTuijeze 5kSw== X-Gm-Message-State: AFqh2krV26QU9BHvM/Cp/1eUBZQC8aMzoBd6taiR3Lm7JekMSHC8LZjE h4cUcUkLA3ihlgJ5TJ3/ntQmH4FtcepjOg== X-Google-Smtp-Source: AMrXdXsht7dEHH0PKOZop1C3Fps4aKI+kf+jFx8uW1Bbky0Zuto0gDZ6aMEEvMoou40bWT4+MGLaHw== X-Received: by 2002:a5d:4b81:0:b0:274:ecce:b3bf with SMTP id b1-20020a5d4b81000000b00274ecceb3bfmr11161859wrt.61.1672250429036; Wed, 28 Dec 2022 10:00:29 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c8-20020a5d4148000000b002428c4fb16asm16022480wrq.10.2022.12.28.10.00.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Dec 2022 10:00:28 -0800 (PST) From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= To: git@vger.kernel.org Cc: =?UTF-8?q?Ren=C3=A9=20Scharfe?= , Junio C Hamano , =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Subject: [PATCH 03/20] bundle.c: don't leak the "args" in the "struct child_process" Date: Wed, 28 Dec 2022 19:00:03 +0100 Message-Id: X-Mailer: git-send-email 2.39.0.1153.gb0033028ca9 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Fix a leak that's been here since 7366096de9d (bundle API: change "flags" to be "extra_index_pack_args", 2021-09-05), if can't verify the bundle we didn't call child_process_clear() to clear the "args". But rather than doing that let's verify the bundle before we start preparing the process we're going to spawn, if we get an error we don't need to push anything to the "args". Signed-off-by: Ævar Arnfjörð Bjarmason --- bundle.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bundle.c b/bundle.c index 4ef7256aa11..9ebb10a8f72 100644 --- a/bundle.c +++ b/bundle.c @@ -627,6 +627,10 @@ int unbundle(struct repository *r, struct bundle_header *header, enum verify_bundle_flags flags) { struct child_process ip = CHILD_PROCESS_INIT; + + if (verify_bundle(r, header, flags)) + return -1; + strvec_pushl(&ip.args, "index-pack", "--fix-thin", "--stdin", NULL); /* If there is a filter, then we need to create the promisor pack. */ @@ -638,8 +642,6 @@ int unbundle(struct repository *r, struct bundle_header *header, strvec_clear(extra_index_pack_args); } - if (verify_bundle(r, header, flags)) - return -1; ip.in = bundle_fd; ip.no_stdout = 1; ip.git_cmd = 1; -- 2.39.0.1153.gb0033028ca9