From patchwork Thu Aug 21 15:35:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 103 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1755790562; bh=LsQWGXMcosE1MuznhDYOxf6WOYj4HJW51iF/h9tj3ro=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=LDBUTJ3trfoBojp8hpkZDBHtBQ5MZ5/b1PPbngUwd489VbUGaSD6UjLHcSbtINVpN 9KE7JH3HZlO/EZ/bQ/k5Dy3tVd0l09dSlpgsiiWHK1PJhKIPdtzOP5E+Yye2O6GuJ/ RMbYSac78dkVAmOiZrZuZPHnDAZP6N6JqvA5PObV24fs6tVj288ly/VwO67TG+VTDD MU30/5riUA5eElWdcMQWZ0pbGlDbxSSEKT4X0fJuaHtLx8k9ISnSj8iD3lNEedjtq4 1EUUaILP+CSGY9UwdgBitssFb3RIQsAXDAkldrIZKtR/xopxe8FcLywG8cfnAb56BT bNHXfVUvj9Z9g== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 77622676DD for ; Thu, 21 Aug 2025 09:36:02 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id UQBWw1ybq-_X for ; Thu, 21 Aug 2025 09:36:02 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1755790562; bh=LsQWGXMcosE1MuznhDYOxf6WOYj4HJW51iF/h9tj3ro=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=LDBUTJ3trfoBojp8hpkZDBHtBQ5MZ5/b1PPbngUwd489VbUGaSD6UjLHcSbtINVpN 9KE7JH3HZlO/EZ/bQ/k5Dy3tVd0l09dSlpgsiiWHK1PJhKIPdtzOP5E+Yye2O6GuJ/ RMbYSac78dkVAmOiZrZuZPHnDAZP6N6JqvA5PObV24fs6tVj288ly/VwO67TG+VTDD MU30/5riUA5eElWdcMQWZ0pbGlDbxSSEKT4X0fJuaHtLx8k9ISnSj8iD3lNEedjtq4 1EUUaILP+CSGY9UwdgBitssFb3RIQsAXDAkldrIZKtR/xopxe8FcLywG8cfnAb56BT bNHXfVUvj9Z9g== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 62A955FC74 for ; Thu, 21 Aug 2025 09:36:02 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1755790559; bh=9QUOWqx9c9LAN/vTAsdcyY6H3dzaOhZ69ok+Ilm71e4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IvwrFTIk2Q/ND2tz7t2nzbgd7mGGmy/5CusQ7eTtgCDQBxMJMJcbuNO8E/KBeTZMG eoCMSBtdKAaH+mo/9Zk5GuAV1xxtXGTKznzIGJ0HOKQHWFaYwZ9H3kd7Jp6+xI5xxh E+1qYnRJqx3gjVvFf3pXZzhAdL7ITNf4Hi3ID3igBtJ95w2uHnPGCogbL5AOwVyMHI AZ8wqCbJi+fmQ/p3jZ98yCXDeq8jtYEcaYS8wkBTBQhCFAZlN6jzcRmMKPqp5/HeV0 QMPCFvH5tUb2ne5LmmBYx2QHTLUZO+9NcREiqg082LnjeguWModw8i/vkw8ggCMP2a 9Ska0SA4vPsQQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 457775FC74; Thu, 21 Aug 2025 09:35:59 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id JiSW_CuUOFU1; Thu, 21 Aug 2025 09:35:59 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1755790553; bh=dOqAl8rBnKGGCUzItMCfMXBqi9FSQnB+Wk55ISz4Wuw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=INS1+WyVAkBIpJi1KPjiSEth/qVvvLqIsYgA1HRhn14Yjxn80nOzaszxELqZo//5I y0sq+RGPTqIGo2LvzNT9bVdVVsI+Obgp6XYNL2Rj8poxB5gnJyTdoQoasR2nWKXNro xfGVNVi0xWkmxL8rHdWiqPZclGEn79NyZYUrKYFPUz/XLl3EFzQ1xHJLjNIVYmYCNH q17SAvjtt/vxnWucU3+HR43kRjz84tiEqusljZYV6RZbHPvKkdNkgUnie7FXbXUAl8 6vqtagM/blXUslGvGAuXDiigY1Q5bAkbrPmfszIGiciFOdXfD5asn8sEN0wD2EcwiA F3PbV6ajxSDLg== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id A8370676DD; Thu, 21 Aug 2025 09:35:53 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Thu, 21 Aug 2025 09:35:22 -0600 Message-ID: <20250821153528.141740-6-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250821153528.141740-1-sjg@u-boot.org> References: <20250821153528.141740-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: BAKSWAWD3RGTHXVUIKX4TNNBAZMKD2UH X-Message-ID-Hash: BAKSWAWD3RGTHXVUIKX4TNNBAZMKD2UH X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt , Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 5/7] efi: Refactor error handling in efi_dump_var_all() List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass Rather than freeing the variable in several places, put it at the end. Assume failure by default, returning success only if all steps passed. Signed-off-by: Simon Glass --- cmd/nvedit_efi.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/cmd/nvedit_efi.c b/cmd/nvedit_efi.c index 0e4abf49fc0..f2bba42850d 100644 --- a/cmd/nvedit_efi.c +++ b/cmd/nvedit_efi.c @@ -150,6 +150,7 @@ static int efi_dump_var_all(int argc, char *const argv[], efi_guid_t guid; efi_status_t ret; bool match = false; + bool ok = false; u16 *name, *p; buf_size = 128; @@ -166,18 +167,14 @@ static int efi_dump_var_all(int argc, char *const argv[], if (ret == EFI_BUFFER_TOO_SMALL) { buf_size = size; p = realloc(name, buf_size); - if (!p) { - free(name); - return CMD_RET_FAILURE; - } + if (!p) + goto fail; name = p; ret = efi_get_next_variable_name_int(&size, name, &guid); } - if (ret != EFI_SUCCESS) { - free(name); - return CMD_RET_FAILURE; - } + if (ret != EFI_SUCCESS) + goto fail; if (guid_p && guidcmp(guid_p, &guid)) continue; @@ -186,14 +183,18 @@ static int efi_dump_var_all(int argc, char *const argv[], efi_dump_single_var(name, &guid, verbose, nodump); } } - free(name); if (!match && argc == 1) { printf("Error: \"%s\" not defined\n", argv[0]); - return CMD_RET_FAILURE; + goto done; } - return CMD_RET_SUCCESS; + ok = true; +fail: +done: + free(name); + + return ok ? 0 : CMD_RET_FAILURE; } /**