From patchwork Sun Jun 10 21:54:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Grandbois, Brett" X-Patchwork-Id: 927438 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 413qgK4f4tz9rxs for ; Mon, 11 Jun 2018 07:54:37 +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="hWLz0tJS"; 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 413qgK2yPfzF33k for ; Mon, 11 Jun 2018 07:54:37 +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="hWLz0tJS"; 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=2a01:111:f400:fe4d::609; helo=nam04-co1-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="hWLz0tJS"; dkim-atps=neutral Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-co1nam04on0609.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe4d::609]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 413qgB0thXzF33h for ; Mon, 11 Jun 2018 07:54:29 +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:X-MS-Exchange-SenderADCheck; bh=+1Jhm1JpxMZM/9FVRKaYNhDQw4P94MKqn8RtW7JwW5s=; b=hWLz0tJS74G8F8VytVx9tJKZTkEuru3KWgxKJKXaBbK6++p9pJClUVenlj3n+qcnxiSqpwqlZapNz6Mc8LCXxEZREqaD7Dhqgp4suc4szqHfs3h4xT16Lk5oZwRxAk2O7ktT8Q0mmznaj8LGXmiNDY5fN+p+XX7qKqNDsBOV5cc= Received: from opengear.com (59.167.150.161) by DM5PR1501MB2054.namprd15.prod.outlook.com (2603:10b6:4:a2::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.15; Sun, 10 Jun 2018 21:54:23 +0000 From: Brett Grandbois To: petitboot@lists.ozlabs.org Subject: [PATCH] discover/syslinux-parser: consistent cmdline arg processing Date: Mon, 11 Jun 2018 07:54:08 +1000 Message-Id: <1528667648-12991-1-git-send-email-brett.grandbois@opengear.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [59.167.150.161] X-ClientProxiedBy: SYXPR01CA0147.ausprd01.prod.outlook.com (2603:10c6:0:30::32) To DM5PR1501MB2054.namprd15.prod.outlook.com (2603:10b6:4:a2::28) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR1501MB2054; X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2054; 3:T2ZH1BAm4bfXhxuJ9CVsqJiL0Q39u4u+YEFS51ZFB+rqY5bxqCmIQ5lN9uZJz3SqsynJS0w134bSPbnEL1KmIh7FVBWgfma7IrTooDmK0gZw84O7k1gc7d0IxlRKOF103/mL6Bjc3l7ENlaLONeO/G0/4m9hrDZ+eQwFKtBHvMWrxHv0VEjBci504xQAyZROEyUW39AmLgHo9zPqsljhw04J/Z7oG1gcz6JOUgdaUtNQJyQQR0+4kb4X7NwnoQuF; 25:4i/x9LDpapZ7DdVcvclByBI4ChmGXh1btYyPIjyMB179PWNFNblQUI4xbLbVA1IyhhigBthhNCvpZ9i+AlHa8/FsSXbAMIBBkRICqAr0uL0Ai4wUYyaJ5/rhoXVjTmMzv8jfN5lKyaI880FF9f0yqRVte30//xN7l3Iy3WZke1iR97VfnGDH56r1SrCpo8RR4x40u2pGmZDQF6RDb5TWA0WpEQ6tWIG+DSlhJB8TfeQ2zQ25gYl6jexD8jYE05Ty20jyzlb7pzUFTA+mYEBCpSYr2Am6SBf+ogWQ/09acroYRS8rPpn9VD6rYIGEuOU4jx7uCLcOehLSKzt2J0TllA==; 31:Apy5WgCNIwCtJTYnCvLiI969hrrhd24TD1wpmxnXvCUotgQMOAlDSPbW/zOrph56nVYCFaxatPWdJ5rFnZEtugAeKiaI2uPXu8pNu2ui7MS62oMKe8uBYaZ7tXFajlq0v4ECfXKvv5HEpyKGD65M59YkegX6GIiMdy5hfBiJcGLKzkZ20a+Db1GLoId0r4HWRwUceqa/5mGwoUgx+e2tMhYFfkvoESyvIbkZj4DKyZ8= X-MS-TrafficTypeDiagnostic: DM5PR1501MB2054: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brett.grandbois@opengear.com; X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2054; 20:dkSm6yGNTkB04AnFA/sOlYebjzHvibxnkoAzCNke9Peb+KxYSNjEd0HcrH2ypRAqyvBloB5VuDiTIZZuhymuJZu6+ORFZz7cRzHj9w9A4opXxhxwdjCzdpNNmNZdusF7UD1eyaMDCuYASRiFado82LH8qo4x86do1Q9SLa7vrAU=; 4:pTnfPzSOwafiGyB3k/jb3ptzPzLvuZODFOSvNsUEqnve9Fe+PHFYSI/Dsh/XB7Qo+ZCtty9SgHaMKqfh3OCpzkqHpYQ5iyDXYyEuyu3LfwtDTxDV4l4Z6s2Jp79J1BifiUQX2X/Ug+A7dnbkl+zctKPEwtOPc4PVIuSBHFHcayQroqOWl0cNzi/RFAc/pq140BQGMA3qNtiP03ZVobrWykNTU2ROrlibgwwLd1naJy/DvvCPhtOgWsYS6jpTIYCyLMl/8U21wAUaXJgsq5dCLA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:DM5PR1501MB2054; BCL:0; PCL:0; RULEID:; SRVR:DM5PR1501MB2054; X-Forefront-PRVS: 0699FCD394 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39830400003)(376002)(39380400002)(346002)(366004)(189003)(199004)(386003)(66066001)(86362001)(81166006)(81156014)(50466002)(6666003)(7736002)(6916009)(68736007)(186003)(3846002)(6116002)(47776003)(48376002)(26005)(1857600001)(8676002)(305945005)(16526019)(105586002)(106356001)(8936002)(21086003)(50226002)(55016002)(44832011)(2361001)(2351001)(956004)(476003)(2616005)(69596002)(52116002)(51416003)(7696005)(5660300001)(486006)(33026002)(478600001)(97736004)(16586007)(2906002)(36756003)(53936002)(25786009)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR1501MB2054; H:opengear.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: opengear.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR1501MB2054; 23:iTkiupVU2pIroOH1SSekLUrIi54Z+TV7oipjQjd?= d2wz/rF1cfPbEWccITZTPzI+zmE8l7PowAfsg3lLn7jcTYsYugOzGqHl1n8bocW6AlnFaRhGwQqIHErvabStyRSJ00Jkv+B4Ms1l1iqPYF5T0fw2hpShL+PJeWtAR7SIB5Kruv5PoGe8SkrZsfpR1//5FEPB7u4oTbZZZTpCB+ZYXZQE/AOKpJ4X/H1c2YgztrfMGtg1k2KXoL3xdVbvgyWxH2QKtu+zZ6dLNW17g+hFBpcfLsAjaJbzdt2WSSiAZqmhIdqfGU5pCxR+LEiLxgON2Tk2flKzVXGTmQB7b/ao+Iao8u+q6kmThxw0QSsefI6Bwf9TC2P7oErxmlqSZz0ojFa8demHv0zMuOTmDdDa2FdOV5PfjM+9HI420l2gXOEhVgec8WHwU1bM4zVwKomMnv3T0ftVswCoryOUj7VKr0kDGOr9rmRrkMXXTgYXaJpmAqchyERQKSooplUEyy4h3CpX81lqpcGNuHPBnrDGMPh/dlpPSaOVEphBBEA7qLD9RKlAQXnXdv9prUQwNEELzQr9slbm7CWZ82gVfVlIIJq9aMZPOVgL8F1/GfUvyLIFMip7FDICMDsN+2wcIJlqMFw6AOuL+5tZ5lZ3aSV9MWORL8INTvLvx+OYDIta7qf6OnkYHLXidn/z3CrdumiCNZ0SqLX3oe5Xqpo8uv8ow4oIuVG2kEbz0/COY8DxwEVVr8Wm2wFugxZPq+R+cAeZyIlCgbizoXoUkoS4PcONFx9plFawAAy7uAfs7d3VQXh1YeWSAV1r0Jk+YmBQN5fh9EZEeTrkts+OOh4dLcO3t6riz+UH9jS/F+vpQv66fk+cnyZm+ehIzAkXyujWiNh7mUQCkoqb7FSUIiPLkQ1muFwFUzstMl45mNaEQWldMoOp554YgKPjadriEtMxjwLwXmSzLe7QDWKDIFoiYynOCVJxBr64RzUklKtAug0OXxTk/DSGPE1ac543aLXwN6J7n9QsEpvXIiiAL79X88F56qOI99sxsfk8wVBG9OBhvrYFz6hwAvkLYO+wPNDC8gro9C2qsfepfjIIfEVpU8snHZLYLLKZvUOpmZM5ljt6mB8qjBwpd7FSXBLJW5cvUC0THqwssl1HRo8+HgP5TMVWfb6Kk7eKKcPLne9OIau/TMcOiUhxFgQKCgHaK6t6dTY3ovruTwmYm6ho0BqKHvwE/0A== X-Microsoft-Antispam-Message-Info: RoldBWpwDKBnhFXMtIDtFmlEdVpZ1AMuu1j3qkwzevjIqim0Suliar4MrqNprWaSVmIj9q0HJrseJw2STM0v44n6+X0T/alR3zYF6/G7ckOJN5nfUOKwYGP2x0c06mTCzmuiv0KyCdmHcl0Uq+0EtIjV3D3iNTBlxn5oiamCUyUrXUB1aeBI0BYsrvOYyM/E X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2054; 6:gv7bKwymzUIKTgsAOGd2CaIQRvWtVeWBjJ8dxV26xEVn954VqzzGMAVoR/tFqSVphW5pfegdKrknuP8lQmn56NVgugR4zR8ulTwmbuH84s2cKsHlKK469jCeAwbsJKa3wG990Qugu1xVmW3xcakxJUGkrGaYfX2GfV2xqg4+3k10GL7uZz6/i4/voCpk+WUFlnmU7FIK6BHgn8RlcG0QzeQkNKC0ZQkyAMJGxaAVOUx1F9Wyyld8m6dgbI1W3PuFdX1EZRtyT0lFKK2REGLlF3cQ3S6KBDXDBbUDDma01A92zoiL3z2MUwX8zxC3EcTej4Bua9PADqCR/k+tlvDK900suuHtueOKahZAvA/OfTNVCvJVdd1qztZdD5z48a/iJ9ZUy4kkBUDGg8XVBNcfrZpbIq9C3dTO85d4cQ3YPv/zqZP5Cov9LvNDQ9v7nrm+HNdtjd0YQBO0Z/vTU9BBGQ==; 5:RUfkAcvqsKTV8wp5Pkg4lqAC38tKlPDOqJ16WxmTxrPwHNXkpLYg71JZbM+pTM1ccL325XmcYCqHBSMYQBJGDaouAiHUBDaysYvP1eQCC2EeY083s49AdLAVBLuTU+60LWQOhjI7Y5Ue6J4Y278Bii2wCOXDu8GXCfETByzBHvM=; 24:zm3rmvREaonazBRMo/YqHSOAHUjVU7g6/OArI5QeH6wYi+qPRLeR3NT6DR3PQ7VGvVDLFcGv8P85RUjZrD9/LxllMzD4TkoR72Hgd+gxF0c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2054; 7:J/i1ll2FBL3bsi/Y8oiFmKF/7HvUKeVfoR/eqKUTuBax685QzFwUFQgf8Hd5kqo1OEZjbiU5QZuteK7/5CgvNOvq+X4/fej/wd1BEzOVhe4rGCxV1bL1thXKSKXtYmSE8RdLLNRwfo+0UQaHl8TJ2sn1SM2fEUL0dt9Q9JDfOl5+UNZAFBmfnMvGTP77a71gDevM7+LPGF7Sq1SeFzJ5yicCREbAzTplr6pLFM0VV88n4T/+hTJrR/VFL6/6k5Y9 X-MS-Office365-Filtering-Correlation-Id: 96e14def-3f59-45dc-f4a1-08d5cf1cbad4 X-OriginatorOrg: opengear.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2018 21:54:23.6851 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 96e14def-3f59-45dc-f4a1-08d5cf1cbad4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a6251c26-d21f-4164-a225-1f4eaebf5f9a X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1501MB2054 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 signed-boot environments consistent handling of kernel commandline options is essential as they must be pre-signed. In the syslinux parser ensure that in the absence of a global APPEND they are processed exactly as found and not with the leading space that the current APPEND processing has as a shortcut. Signed-off-by: Brett Grandbois --- discover/syslinux-parser.c | 11 +++++------ test/parser/test-syslinux-explicit.c | 2 +- test/parser/test-syslinux-global-append.c | 19 +++++++++++++++---- test/parser/test-syslinux-single-yocto.c | 2 +- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/discover/syslinux-parser.c b/discover/syslinux-parser.c index be7b94a..4b82433 100644 --- a/discover/syslinux-parser.c +++ b/discover/syslinux-parser.c @@ -338,11 +338,13 @@ static void syslinux_finalize(struct conf_context *conf) /* '-' can signal do not use global APPEND */ if (!strcmp(syslinux_opt->append, "-")) opt->boot_args = talloc_strdup(opt, ""); - else + else if (global_append) opt->boot_args = talloc_asprintf(opt, "%s %s", global_append, syslinux_opt->append); - } else + else + opt->boot_args = talloc_strdup(opt, syslinux_opt->append); + } else if (global_append) opt->boot_args = talloc_strdup(opt, global_append); if (!opt->boot_args) @@ -454,13 +456,10 @@ static int syslinux_parse(struct discover_context *dc) /* * set the global defaults * by spec 'default' defaults to 'linux' and - * 'implicit' defaults to '1', we also just set - * and empty string in 'append' to make it easier - * in syslinux_finish + * 'implicit' defaults to '1' */ conf_set_global_option(conf, "default", "linux"); conf_set_global_option(conf, "implicit", "1"); - conf_set_global_option(conf, "append", ""); for (filename = syslinux_conf_files; *filename; filename++) { /* diff --git a/test/parser/test-syslinux-explicit.c b/test/parser/test-syslinux-explicit.c index 5d23f50..82030bf 100644 --- a/test/parser/test-syslinux-explicit.c +++ b/test/parser/test-syslinux-explicit.c @@ -36,6 +36,6 @@ void run_test(struct parser_test *test) check_name(opt, "backup"); check_resolved_local_resource(opt->boot_image, ctx->device, "/backup/vmlinuz"); - check_args(opt, " root=/dev/sdb"); + check_args(opt, "root=/dev/sdb"); check_resolved_local_resource(opt->initrd, ctx->device, "/boot/initrd"); } diff --git a/test/parser/test-syslinux-global-append.c b/test/parser/test-syslinux-global-append.c index 18af99a..af2e9af 100644 --- a/test/parser/test-syslinux-global-append.c +++ b/test/parser/test-syslinux-global-append.c @@ -18,6 +18,9 @@ LABEL hyphen KERNEL /test/vmlinuz APPEND - +LABEL onlyglobal +KERNEL /only/vmlinuz + #endif void run_test(struct parser_test *test) @@ -31,8 +34,9 @@ void run_test(struct parser_test *test) ctx = test->ctx; - check_boot_option_count(ctx, 3); - opt = get_boot_option(ctx, 2); + check_boot_option_count(ctx, 4); + + opt = get_boot_option(ctx, 3); check_name(opt, "linux"); check_resolved_local_resource(opt->boot_image, ctx->device, "/vmlinuz"); @@ -40,17 +44,24 @@ void run_test(struct parser_test *test) check_args(opt, "console=ttyS0 console=tty0"); check_not_present_resource(opt->initrd); - opt = get_boot_option(ctx, 1); + opt = get_boot_option(ctx, 2); check_name(opt, "backup"); check_resolved_local_resource(opt->boot_image, ctx->device, "/backup/vmlinuz"); check_args(opt, "console=ttyS0 root=/dev/sdb"); check_resolved_local_resource(opt->initrd, ctx->device, "/boot/initrd"); - opt = get_boot_option(ctx, 0); + opt = get_boot_option(ctx, 1); check_name(opt, "hyphen"); check_resolved_local_resource(opt->boot_image, ctx->device, "/test/vmlinuz"); check_args(opt, ""); check_not_present_resource(opt->initrd); + + opt = get_boot_option(ctx, 0); + + check_name(opt, "onlyglobal"); + check_resolved_local_resource(opt->boot_image, ctx->device, "/only/vmlinuz"); + check_args(opt, "console=ttyS0"); + check_not_present_resource(opt->initrd); } diff --git a/test/parser/test-syslinux-single-yocto.c b/test/parser/test-syslinux-single-yocto.c index e5e084d..dd26577 100644 --- a/test/parser/test-syslinux-single-yocto.c +++ b/test/parser/test-syslinux-single-yocto.c @@ -32,5 +32,5 @@ void run_test(struct parser_test *test) check_name(opt, "boot"); check_resolved_local_resource(opt->boot_image, ctx->device, "/vmlinuz"); check_is_default(opt); - check_args(opt, " console=ttyS0,115200n8 console=tty0"); + check_args(opt, "console=ttyS0,115200n8 console=tty0"); }