From patchwork Wed Sep 9 15:00:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Codrin Ciubotariu X-Patchwork-Id: 515916 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id A472A1402AC for ; Thu, 10 Sep 2015 01:01:18 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 933124B70D; Wed, 9 Sep 2015 17:01:16 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DBbYKOScfEZ0; Wed, 9 Sep 2015 17:01:16 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D2A864B712; Wed, 9 Sep 2015 17:01:15 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 73DAD4B712 for ; Wed, 9 Sep 2015 17:01:08 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h3nTUQ56Z0Ok for ; Wed, 9 Sep 2015 17:01:08 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0117.outbound.protection.outlook.com [207.46.100.117]) by theia.denx.de (Postfix) with ESMTPS id 270864B70D for ; Wed, 9 Sep 2015 17:01:03 +0200 (CEST) Received: from DM2PR03CA0001.namprd03.prod.outlook.com (10.141.96.11) by BLUPR03MB1459.namprd03.prod.outlook.com (10.163.81.156) with Microsoft SMTP Server (TLS) id 15.1.262.15; Wed, 9 Sep 2015 15:01:00 +0000 Received: from BN1BFFO11FD027.protection.gbl (2a01:111:f400:7c10::1:147) by DM2PR03CA0001.outlook.office365.com (2a01:111:e400:2428::11) with Microsoft SMTP Server (TLS) id 15.1.268.17 via Frontend Transport; Wed, 9 Sep 2015 15:01:00 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD027.mail.protection.outlook.com (10.58.144.90) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Wed, 9 Sep 2015 15:00:55 +0000 Received: from fsr-fed2064-105.ea.freescale.net (fsr-fed2064-105.ea.freescale.net [10.171.73.23]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t89F0rJK024818; Wed, 9 Sep 2015 08:00:53 -0700 From: Codrin Ciubotariu To: Date: Wed, 9 Sep 2015 18:00:51 +0300 Message-ID: <1441810852-2054-1-git-send-email-codrin.ciubotariu@freescale.com> X-Mailer: git-send-email 1.9.3 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD027; 1:ylfC1M/B+2lYkv52O5bD290oJMKkNzOOjAg6Ko+CUekkTI8Apw1NgSKajE/yTJkvyeKTaY1ZCTARk1omvc01aT41dXzE+j3gh4EgwBf6v/JY+S9hIb2Ol9QXfmqQgTlwqzZQh4/TnTr/OP8sdVl/UdxsJ9/9ZMOCYZqSFavZ87+RBE6+ETOZxALnp70/gVzySdtOlIOUQa2r8ZjWlJWe/Y6G0Yt/mtF+MbgV/DGyW837a+Ngfv27NeDEFgsHCx9SiXSh6s16L1zI47zNAWnk52FDnCy0C/VafYrkPNdpPp5ZDUVdW/43Ed2YeR/8+bvEyF3owTHvb/ZRCF69JNGjwnhEP3JgE33MwUvuOv9VNTIluApE83pnJ6fwtfwHhptqlkS3sWFILNVo6EQYHwhJgA== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(5007970100001)(11100500001)(77156002)(62966003)(106466001)(33646002)(92566002)(5003940100001)(19580395003)(47776003)(77096005)(104016003)(36756003)(64706001)(6806004)(68736005)(81156007)(4001540100001)(50226001)(97736004)(19580405001)(46102003)(5001860100001)(107886002)(189998001)(5001960100002)(69596002)(50466002)(50986999)(5001830100001)(48376002)(86362001)(229853001)(2351001)(105606002)(87936001)(110136002)(85426001)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR03MB1459; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:ErrorRetry; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB1459; 2:W3Swg5Zoa53gs7ZcrEkIWEf3owSgJc5zWrPY/cnNyabL+q4UugrZCTnCmYHNHgA3fYrDbYZn870PHhfN3l2y6ZiJQWIKnu0Qdv2JdgRMfq7gWx8JkO4/mrJGHvm39EMoOEWXoysg8ZWuEVTOlyjqh7d6cyb+tScxSR90HdbciCE=; 3:ysIL9ev+imufKXrdCBI2t13ZXYyxsPp3hHg1iMw4QTxII59LWMRP+dwL9MCmKcLHXRmTZSzjCj4T3B5uR6Cp6ERtJuNiRThZShCn6Jxp/38tdMwZvbCTRqgZHG1KodXsdapqMDkvY67pH0lGiYVPfIiTlDEEaqmB5IBamjxtvSvjysJM/CK0QFquvRdkTa1L3HZqxtFIV99h1wedJ4HIUR8csxhMzHpYc+82ismx9I8=; 25:FKDGMf5Z1m6n5h1IgqcbTHsvokzMedhPqCwjRfuVLnoGrTTQrWMOK1/mV5YjBC3uolaBD+I0oG8W7eGxh1ojk57VXAsONwklX/KgLZHtt4pfK0CGkeduTE5iYc+mKi4Zq5S+RFlrRnJfFI0BpG1mkWqo9K6rXb4pYXJPHLorpFHKGqXZO9od4Ua+PJGOy1R6HFxZW96G6KLPKm9Sce1+VDhHTamEU27tsZ3YDcTMIaug/XW2i2/q5bMKBsHZRDwj0cl9lZj9BTN/1BPCyL3Uew== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB1459; X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB1459; 20:rpBbT5fuuPXSiYLpVTJrp0puCk7vKfaagAPIkjrj1/WtMJCLQHTLWyTbnAjDz7pXHDP4dO19FDlpMbNBMvMYUq2e1qPjlMC6Uo/pZPMndzdwisPEEZWyv0a2sWiqJMh/w3sm8KviBIISugDNGtqmzK2sIyaYiKncyZ7tFsnH18CMmxXNO5mbmapfzjwpqsbPZi3zvherdlmi/NSHkaMOeqTTm4LfzdRNsjSQ12JZuRjrjDhSBgIFdfW8noe1g+Zd8jy3GjsIv66pF8sT2JUq9I1JhPQnthzV1EYHoE1Tuh00m8fkx9PLoG89aroMaiHsur0gSrq8ewIUiBRzIVVTqseyYSQSiuPDMxL6VqmNlfU=; 4:tNVi65QEd+5f38vdxw0F82Td5pDfnMTD6RC/k//JouFRSQdltxm6qfW1uzcQ5dbasDpXknboAlmFLKj8jxKsE2zCg5IlRnp5QbAzdCBB1H+IOY+WqpQGd0li2PFKtTz0yAuRRu34evEgmCPwn4jC/UUbf1oEy+h4GVKjcITBRWCfSqRQC3ceQA1Lkmp1kmP5bQegQoWOIL0nnYM4x3w4gsF24qR4KmJND7ATo+0sCpQ36F2jbVNJKi4oGvm6aooPuq4Y6CJQeS3I4W4TxPdZrwRPCdRiX8ozzmP/KDwnR6mUXvvA1BrISG8T8jnV5Kg9CXjxa7OLF3ypcFsYYyxdEQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(5005006)(3002001); SRVR:BLUPR03MB1459; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1459; X-Forefront-PRVS: 0694C54398 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR03MB1459; 23:hA9VXpRb/n08rbyi7OnfG4/BE+QRLzUQoRKDQKrLN?= =?us-ascii?Q?XlVmlsar7pXSnJ6mZMpRXNS3BnqHBeDIBap2u30TxWXRjxaOqzUZt0auTcvF?= =?us-ascii?Q?iRUOZPeaOSacF5+FPQWsfSKanaZrO74jpdKUjxqUwDBOqwhDEcU5hDYRrydC?= =?us-ascii?Q?jEYgPu9D1Iud2dXjgYnqZ6uh0tUO3/C4C/7+P4FDAYzxUSwMUtAzbyBlIaDP?= =?us-ascii?Q?ddLgYh5Er4btPCdWEOzPAFnfZ5tLAzwQt5/Qb4AZm+pk7KUdtI9sox8MfjMV?= =?us-ascii?Q?20/VjjOoL7QXKePQGNluXBps88GaaO/JmHmKWPdCqCOw+tp7BjuhHOdWoJ8A?= =?us-ascii?Q?rHpGiyuqfqeUwgIVYvN6xgLtBkLLIao2MnjZxyHBluUCmI3AELHxP5N7CkAf?= =?us-ascii?Q?5zX7mCL59l+wc4/C0q8cImiwKaIC+beG2K7zn05N2AH8dDhf/MSQIqTEDtsu?= =?us-ascii?Q?ukSDZoyHOhlhQYVDQs7vwVP+iBSX4yL3b30CbJSoaMLDR4cI2VmaAEIOTPww?= =?us-ascii?Q?5GS16uRNX/047w/YwXMegj3kPnLBH8nnIUZexOr7F/fnTPW/lYWwzZObjByH?= =?us-ascii?Q?toXRg8DTBeG7qEmZ7Z0HyiALPrPl55iZEu9uz4zfdwZYuEPcQ3mjfDTHU7W5?= =?us-ascii?Q?2VKFacZW5afhvc4bWHJn9+W2V8UnvAvWRmzHzKj8S68wqUHa4Ssqbv8f8ky1?= =?us-ascii?Q?jfkU/JfS+ZPmx3R+D5PQks8p1Q+E5Gids4v4N5r/fHs93i/OrFlq/g4LuXsM?= =?us-ascii?Q?SfWjEeRi4o0QbTNWXiS3U7rlMnfaPGCXCxIUaTD6edWJ+OqefhzQzkxPLXiE?= =?us-ascii?Q?AkodHAbpOjft5f8mBkCL2VksXmoE6cYcS+dk+3y4WfhDHmkPR6WKB0crEuv9?= =?us-ascii?Q?n3Me4JQ1439hfc7aQCsCj3rZGxgfcPf08BBGV1D2Zti0TSPyDXBcFHqNYscC?= =?us-ascii?Q?6XHi4Cp3ep+7eqgC8RLeVV1mTXLXovGeiGm67ea1L/aahWwr2nlguZtYmTG4?= =?us-ascii?Q?9dqzMaSXGP62thcMYCues1Ok3bkMoz7G5SJ35dJCzK3f3eu1/IfgOwZUdPcY?= =?us-ascii?Q?pWanCFKklsLz3q9XIR4bcHr2AGFktNKvXYUM7yMtQ8tUtMXmu3rk/1FcHJQg?= =?us-ascii?Q?lEzXQZP0Nv4kKzng4W+dB8Q0zd5zB+2r3AqiP0A4GTmq2+naQQfPJIQj+scs?= =?us-ascii?Q?6/Em1G9HGB3q60AwX3jVhN8ik6ucKMTy5sUvZMLCMpZTBAqVu12d0lRCQ=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR03MB1459; 5:IYTJA6Iq2Ov9tIioBZpxme3elr14xvhZzlXk5Dg3zmsJl7B2HVLlfo+mfdsjrTR6+Pkr4T5Otkgt3Zmes47c3EMLI1gt8mZJrJ9FyNywhgmhn9LBAE+u92bGxaqvVhm7r2YgFksUG7KTb+yTX9Zs/w==; 24:yRdEZNoCkwMfzmW5UTsgyCH9ZsowVLk4s766zkWXci5WYHhN2YQtJQLUwpU6WdA6p/DFQBTqoAMJhMzG53JvV1iHIV9Kzha3K0lSPd+pGVM=; 20:bqjvn2exkOBgKbVjhChqUEYJqbxnFf9I0quNqkLVml/OmFPzy+/0Z8al4HLK2XivhmivNXBJMIl00mTg/ixn8Q== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2015 15:00:55.5240 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1459 Cc: joe.hershberger@ni.com, yorksun@freescale.com Subject: [U-Boot] [PATCH v4 11/16] common/env_flags.c: Add function to validate a MAC address X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The code that checks if a string has the format of a MAC address has been moved to a separate function called eth_validate_ethaddr_str(). This has been done to allow other components (such as vsc9953 driver) to validate a MAC address. Signed-off-by: Codrin Ciubotariu Acked-by: Joe Hershberger --- Changes for v3: - none, new patch; Changes for v4: - function eth_validate_ethaddr_str() has been moved to common/env_flags.c and its header to include/env_flags.h; - patch desription updated; common/env_flags.c | 40 +++++++++++++++++++++++++++------------- include/env_flags.h | 7 +++++++ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/common/env_flags.c b/common/env_flags.c index 5189f5b..e682d85 100644 --- a/common/env_flags.c +++ b/common/env_flags.c @@ -187,6 +187,31 @@ static void skip_num(int hex, const char *value, const char **end, *end = value; } +#ifdef CONFIG_CMD_NET +int eth_validate_ethaddr_str(const char *addr) +{ + const char *end; + const char *cur; + int i; + + cur = addr; + for (i = 0; i < 6; i++) { + skip_num(1, cur, &end, 2); + if (cur == end) + return -1; + if (cur + 2 == end && is_hex_prefix(cur)) + return -1; + if (i != 5 && *end != ':') + return -1; + if (i == 5 && *end != '\0') + return -1; + cur = end + 1; + } + + return 0; +} +#endif + /* * Based on the declared type enum, validate that the value string complies * with that format @@ -239,19 +264,8 @@ static int _env_flags_validate_type(const char *value, } break; case env_flags_vartype_macaddr: - cur = value; - for (i = 0; i < 6; i++) { - skip_num(1, cur, &end, 2); - if (cur == end) - return -1; - if (cur + 2 == end && is_hex_prefix(cur)) - return -1; - if (i != 5 && *end != ':') - return -1; - if (i == 5 && *end != '\0') - return -1; - cur = end + 1; - } + if (eth_validate_ethaddr_str(value)) + return -1; break; #endif case env_flags_vartype_end: diff --git a/include/env_flags.h b/include/env_flags.h index 2d2de88..8823fb9 100644 --- a/include/env_flags.h +++ b/include/env_flags.h @@ -109,6 +109,13 @@ enum env_flags_varaccess env_flags_parse_varaccess(const char *flags); */ enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags); +#ifdef CONFIG_CMD_NET +/* + * Check if a string has the format of an Ethernet MAC address + */ +int eth_validate_ethaddr_str(const char *addr); +#endif + #ifdef USE_HOSTCC /* * Look up the type of a variable directly from the .flags var.