From patchwork Wed Apr 18 00:20:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Grandbois, Brett" X-Patchwork-Id: 899777 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40QjTk53kpz9ryr for ; Wed, 18 Apr 2018 10:21:30 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=opengear.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="VkfTDZZY"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 40QjTk3QdLzF222 for ; Wed, 18 Apr 2018 10:21:30 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=opengear.com Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="VkfTDZZY"; dkim-atps=neutral X-Original-To: petitboot@lists.ozlabs.org Delivered-To: petitboot@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=opengear.com (client-ip=104.47.36.54; helo=nam02-sn1-obe.outbound.protection.outlook.com; envelope-from=brett.grandbois@opengear.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=opengear.com Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=opengear.com header.i=@opengear.com header.b="VkfTDZZY"; dkim-atps=neutral Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0054.outbound.protection.outlook.com [104.47.36.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 40QjTT27zdzF21B for ; Wed, 18 Apr 2018 10:21:17 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=opengear.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=1VFJWeSkSoNROEWJCsTyVDiXPk6JDnwMSHAZ8jkJIxU=; b=VkfTDZZY/KmhXPRfgFj3cXW+Xhz3GAnPLdy+dekVokcSBi09g5dwucmXpq+k6sqNPHYZsFUOOwyF4ZfTpbA9EswBzfmr3y2fH+2dJbDarXoNj6MWd6zkOwQr7w2TYkL0xD0w5/DH3/zpURqRxI/b0lGvlkUmF2MtiVtfotyyalw= Authentication-Results: lists.ozlabs.org; dkim=none (message not signed) header.d=none;lists.ozlabs.org; dmarc=none action=none header.from=opengear.com; Received: from opengear.com (59.167.150.161) by SN6PR1501MB2062.namprd15.prod.outlook.com (2603:10b6:805:f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.13; Wed, 18 Apr 2018 00:21:10 +0000 From: Brett Grandbois To: petitboot@lists.ozlabs.org Subject: [PATCH v2 1/2] discover/syslinux-parser: clean up boot option list entries Date: Wed, 18 Apr 2018 10:20:43 +1000 Message-Id: <1524010844-8748-2-git-send-email-brett.grandbois@opengear.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524010844-8748-1-git-send-email-brett.grandbois@opengear.com> References: <1524010844-8748-1-git-send-email-brett.grandbois@opengear.com> MIME-Version: 1.0 X-Originating-IP: [59.167.150.161] X-ClientProxiedBy: ME1PR01CA0148.ausprd01.prod.outlook.com (2603:10c6:200:1b::33) To SN6PR1501MB2062.namprd15.prod.outlook.com (2603:10b6:805:f::10) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN6PR1501MB2062; X-Microsoft-Exchange-Diagnostics: 1; SN6PR1501MB2062; 3:MiOT24cKwyV989BR9bdzyEHa0Ga1y+GSdJKO28MXiZ65wMZY0DCwh2CkMZ4cGBrZvPYSwWNwon+fE+omBtWLZaw3wnbLLcOd6bcY62oR9to3VrsYEq8wYQix8mtvX/ISs4x9W0BmprdHOyVMyPyNttVe8SNd/MDhmTzM3oejtGIFt+n3YhuSw7Wr69ImRwXxmZz8BKnVjOYDZb52vegZiMqj51ZXTmRfmDqsDl5/INsl23J1M0V5PzXLG9BTZ72M; 25:pWIzEw/+8R2zvb2qbbJTWuwLDIjlpDh0NMWR5vMOijWuJELF6gGNakgxaXjdVw0M+HEr+aOcF2Ug0OGyfoiKqvkkalhN2b400DiTnfwlSJOjrpNgEvNY6wjA7UEpSKVGzkGXMzbjOoxUg4D2efQ1wzjUKFzm5dEHnAoTaYP0rBeqAjCeWNEowG7V2ssIcSjhq5yNymW5We/ysr5qaHlQmVJ5wOBMYF00UhBfGHenuZBkPwf6WIyuSSxV7I0YoiqE+Ffba8O4wllfRjZqqxSMnH1daKOJwZ2ZI1KzwKH3j4d4GmBG1JS6WddVzeaG47ksa+MXcxNiCxqAnGUsMtUhcQ==; 31:bea7qdLSDigdwqpq42L2tBomy5gDIAw7+UH4ZF0qlKDUuBPOoT56ZVKvk1H5+mvwmpfHnTWeaOz4tGr8Yq5srnlTqD9EyVO7A0p1QM8TmrIIfZ7BDOzZXbClYEbrQE59FgioCq+aL+9ghhryTxtwzhhSaDc++26iAflvYEVi0ITxq1A+Rx1xOwNnzOaO38Iv/Oo/pKAc7AOGFqaK5jXlxL15Kk8T6vX7ytEv2F7q5Tw= X-MS-TrafficTypeDiagnostic: SN6PR1501MB2062: X-Microsoft-Exchange-Diagnostics: 1; SN6PR1501MB2062; 20:Yw2KwIjXhpNn6LvQ7+FVeukEK8KMY6/QN48Skh41MlpafWrP8raXu9OP2sP+70j3FgO2nMz9HLwDjeYZ133IggQypefFqvInGUnNcHA9Sma5ojMP1Gxo0VDhf218ZklQYS+JQ8GEmti+2tUWS2DpByfJ+0Qmjfs62uzO5HZs4v0=; 4:4e2CPMFdkAam6ZHoDSlSDsmCIIDXMl1WtWHKuwlbssK1ikV1okOLrO89hhscYAwPyQQr2BAD7fvRkKwGOWOyeM17nl0MhhUyg+fqTx9bUcebgnAbj2u5OIZLGIqVsQ0arTxeYzkG0nRjZ3tvp28omxyNqCtomQ2SI8lceDpA4YZTH8IWRDYTffMHXVkM3ek3+ICXfjsHZV0bfUJX2ga2P9LUeZXvumUlxE1rkreVLoNp2/p9bT5Q9rl7F3Jg1lfggAKXJnC9xorYz30Eej9Vbg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231232)(944501327)(52105095)(3002001)(93006095)(93001095)(10201501046)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:SN6PR1501MB2062; BCL:0; PCL:0; RULEID:; SRVR:SN6PR1501MB2062; X-Forefront-PRVS: 06469BCC91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39840400004)(39380400002)(376002)(366004)(346002)(396003)(6666003)(6916009)(7736002)(305945005)(2906002)(33026002)(53936002)(50226002)(478600001)(8676002)(25786009)(81166006)(8936002)(47776003)(55016002)(316002)(3846002)(6116002)(26005)(2351001)(186003)(16586007)(2361001)(11346002)(76176011)(51416003)(52116002)(7696005)(48376002)(44832011)(50466002)(386003)(2616005)(86362001)(476003)(956004)(66066001)(16526019)(446003)(5660300001)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR1501MB2062; H:opengear.com; FPR:; SPF:None; LANG:en; MLV:nov; PTR:InfoNoRecords; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN6PR1501MB2062; 23:pqzbFtqgmhRw7oCJ8W3wEkolW4B1BAZUN3G9fwv?= O59vvi7ZgSzEdCVRu3TRe7W2ocV+n5uqT8PJxAAYT+X3KD+99vomZUKoUCJPMFs6i5olOWwod70BlxfZ3uB+FRqbZcQN7uRui5P91wzoKJ4rmOaO4kdRVSWNNecAD+PBjcQItsSuxrrgw8b0akIKaPVI2Cn7CSXrRSojE+a5nfM9PEIZbu1oMY4ASiyy7/KfePv6ULrDfWu2H8MdLpNcUfdK2QF2i+8nTdJwolrZUdB0FPqkXpWDD33PKD0L61F+xCaAtwBIufjBLEn/bFpiG7w1DOuo5DnEEXfvNnqEc9q4cYfuRfO5TdGbDARaGen0nIAj2SU5zk/XwnBRZFV0vx4hOF0NA6qI58kMyKPbjnpOkRR8lITrWj+Jwjnd4OcKoSjrtWpz7Rqw3I6aq6U/568MFce+10XDtzcARFjX+uvJhBrfBvUznwhbm5RIHtB3D9HCVX/fKrIzTvSjVsYKqadhcMiYEeCCiTaR9/1/eDA8kJic15exPhUbSpG6nUcmhzUfb5aodJ/u+YvAC6PqYbJmi4gydNkywa9ZohTEBXI3Lv8iFfMz4joXEoI1PhUH1wORecx4ppl09B5GFdiibSK/jv0fomLCyK1M3Zz+V9Zx0E5co873wls6CYHLnvxQf+a3YhMkP1qs2wtq1srG+jcCT3Xm87ehhEVsuh+m7mmTmOPxkXtW/1ikwSosRXknmP70YbedKASNkRO/VmVyRefMY4n2Or1RXeWvHSTQlf5Zy2RelVFrjnl9L3mfoFdsIqMzw/yjaGb0DF8BCUdnZtQWXBvwBCoVEpizxAU91HZ4kdxXJ27LFXj0Gk7qpFPKHhI4hufx+o6yg1Tzh3mrNGXcI2HAI8hH4YvrdzhlPwUkvbg2XOVJqHlgM/nZi01ruNvk1/apBZPJ9QYLmJYOzYOf12VSE6XXulHAydY63hn7a9nVCdcUaAKz+0p79aqwR6GZuQEIQ+AZlADrkzUfAJAq0C+KMU6Z4u+jtOsvurHF0r4Pt6v6OeZWtvEIcgGNfP5GgO3kiglK8iKVcZ3o65ANL X-Microsoft-Antispam-Message-Info: OZBMCclDTQJtZsetN6yzvsy0LZTV43+7f1p9wN3qAK63kPATVEnzxld8Izft3UhjNM6ZxKkdnn2YArLutNvfCTRtOdC1SxRTu+/vuPLiwJhRrvGKEx6Bq692yGywdGgaJ6/eaWZr+K/a2qNe8JZQucEX/2VFL18jAfiUSPgvnXpojUIGMmkZnuGTXZdPTDGG X-Microsoft-Exchange-Diagnostics: 1; SN6PR1501MB2062; 6:IuutfT6oVc7A1G0rIrPsV8WzGQXftGhIdmNjlVtpKieUbouEBQ2LbSjp/itaBjFYzQadTkLTHR2UW0V+W+Tlcu3QdTU4xKpWFBJrEVr2H2GBrv423z3uaYy/YxyUR+XZYnqU7gcyCvDOxZLgDIRZhItNLLFPQen0sQJ2wqpgHNVw4PUwqMZz2afHdDR3/5VOvmIWiLDmiKhcAkriwm9i7V3+ag+Qi/eGDi3+fzYElh2SXRWcDIC0VbSzQmWRJgMYjR5X9d4/7dtAgEv3h3eS/Dw5SEe+x3qtnzcH0ophuX/3ftG+SxEoUbsRzOhdabsJiKkVSvL6Hm9AUfVqN2zwGz0OOHG2XaW46RyfLhBzlnihQTTbv8WoLhwtz3T5rFCRdtJ3Y+lX6ZOay22KvECG9K3FPkju0aZW+hi3WYhjG6YQBF2FY0obYVQcg9afbN4BlRODQJq/XNQF3AdPKJfSXg==; 5:44a/sKfGPaklIZ9KDIc2ixe4j9+L0Fdeeck22Mh1kE6YNi0HOBbJlZ4x8Pk2AC8TpDVyBA29QV562gpvEPjomlYrr3gIt+QPbBqmJV5+m/i9sBW5fouhIWW1hMCum5KID/lpaFKSM3BupEA9VUZ3LCiLa1ZHmOxDOSarZbpmzTc=; 24:G8C6zRoP0ix813viopfEoARI7ixTlrpteR12rT0okApVgP7eBa8heNH4dyZSBOokoEqT4hUnqMKu8yJazBvsT0E0ZY3VTI41Z77I8ORhz2g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN6PR1501MB2062; 7:GlUloEIud81j+0Tcd7bsYffVaj1QmpttICnA9SQBv2N8UpQdsihvip3lGHysQBLH0nQBGmPEhULfIISZCWQOfoZVJenQubSZe3zPbFuM9wwaAGYLqwdyn9L6posdHkO2WxOHQpdRroQvdeldtQjHi3egIQ3dqbDcOa60x0yJza3Cmul73hNYRp5FlS+av3eUS/wRPvNORkUsS8+XJ0Er/ei0R9ZDWsOXZUQzX0GhP3pdE6kjKBGN9ptVttwVZ0Vn X-MS-Office365-Filtering-Correlation-Id: c7fb69d7-f663-424f-5667-08d5a4c24996 X-OriginatorOrg: opengear.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2018 00:21:10.1274 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c7fb69d7-f663-424f-5667-08d5a4c24996 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a6251c26-d21f-4164-a225-1f4eaebf5f9a X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR1501MB2062 X-BeenThere: petitboot@lists.ozlabs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Petitboot bootloader development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: petitboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Petitboot" in finalize loop or we can get duplicate boot entries as well as the memory leak --- discover/syslinux-parser.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/discover/syslinux-parser.c b/discover/syslinux-parser.c index d948765..50e798a 100644 --- a/discover/syslinux-parser.c +++ b/discover/syslinux-parser.c @@ -285,7 +285,7 @@ static void syslinux_process_pair(struct conf_context *conf, const char *name, c static void syslinux_finalize(struct conf_context *conf) { struct syslinux_options *state = conf->parser_info; - struct syslinux_boot_option *syslinux_opt; + struct syslinux_boot_option *syslinux_opt, *tmp; struct discover_context *dc = conf->dc; struct discover_boot_option *d_opt; bool implicit_image = true; @@ -309,7 +309,7 @@ static void syslinux_finalize(struct conf_context *conf) if (conf_get_global_option(conf, "implicit"), "0") implicit_image = false; - list_for_each_entry(&state->processed_options, syslinux_opt, list) { + list_for_each_entry_safe(&state->processed_options, syslinux_opt, tmp, list) { /* need a valid image */ if (!syslinux_opt->image) continue; @@ -404,9 +404,14 @@ static void syslinux_finalize(struct conf_context *conf) discover_context_add_boot_option(dc, d_opt); continue; + fail: talloc_free(d_opt); } + + list_for_each_entry_safe(&state->processed_options, syslinux_opt, tmp, list) + talloc_free(syslinux_opt); + list_init(&state->processed_options); } static int syslinux_parse(struct discover_context *dc)