From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C269621954074 for ; Thu, 20 Apr 2017 20:01:04 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP; 20 Apr 2017 20:01:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,228,1488873600"; d="scan'208";a="92445300" Received: from jiaxinwu-mobl2.ccr.corp.intel.com ([10.239.196.99]) by fmsmga006.fm.intel.com with ESMTP; 20 Apr 2017 20:01:03 -0700 From: Jiaxin Wu To: edk2-devel@lists.01.org Cc: Eric Dong , Ye Ting , Fu Siyuan , Wu Jiaxin Date: Fri, 21 Apr 2017 11:01:01 +0800 Message-Id: <1492743661-18012-1-git-send-email-jiaxin.wu@intel.com> X-Mailer: git-send-email 1.9.5.msysgit.1 Subject: [PATCH v3] MdeModulePkg/DeviceManagerUiLib: Fix the network device MAC display issue X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 03:01:04 -0000 v3: * Add NULL string check. v2: * Define new STR_FORM_NETWORK_DEVICE_TITLE_HEAD for L" Network Device " instead of hard code in the code. Network device tile (STR_FORM_NETWORK_DEVICE_TITLE) is dynamic adjusted according the different MAC value. So, the string value shouldn't be treated as a constant string (Network Device). Otherwise, the display will be incorrect. Reproduce: Device Manager->Network Device List, select to enter MAC, then to press ESC back to previous page, then re-enter, found each enter/ESC operation, the MAC address display +1. Cc: Eric Dong Cc: Ye Ting Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin --- MdeModulePkg/Library/DeviceManagerUiLib/DeviceManager.c | 11 +++++++---- .../Library/DeviceManagerUiLib/DeviceManagerStrings.uni | 5 +++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManager.c b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManager.c index 5098b70..23ae6c5 100644 --- a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManager.c +++ b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManager.c @@ -538,16 +538,19 @@ CreateDeviceManagerForm( // // Update the network device form titile. // if (NextShowFormId == NETWORK_DEVICE_FORM_ID) { - String = HiiGetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NULL); - NewStringLen = StrLen(mSelectedMacAddrString) * 2; - NewStringLen += (StrLen(String) + 2) * 2; + String = HiiGetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE_HEAD), NULL); + if (String == NULL) { + return; + } + NewStringLen = StrLen (mSelectedMacAddrString) * 2; + NewStringLen += (StrLen (String) + 2) * 2; NewStringTitle = AllocatePool (NewStringLen); UnicodeSPrint (NewStringTitle, NewStringLen, L"%s %s", String, mSelectedMacAddrString); - HiiSetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NewStringTitle, NULL); + HiiSetString (HiiHandle, STRING_TOKEN (STR_FORM_NETWORK_DEVICE_TITLE), NewStringTitle, NULL); FreePool (String); FreePool (NewStringTitle); } // diff --git a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerStrings.uni b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerStrings.uni index 061e4be..55d03d6 100644 --- a/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerStrings.uni +++ b/MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerStrings.uni @@ -1,10 +1,10 @@ ///** @file // // String definitions for the Device Manager. // -// Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.
+// Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.
// This program and the accompanying materials // are licensed and made available under the terms and conditions of the BSD License // which accompanies this distribution. The full text of the license may be found at // http://opensource.org/licenses/bsd-license.php // @@ -40,11 +40,12 @@ #language fr-FR "Missing String" #string STR_EMPTY_STRING #language en-US "" #language fr-FR "" #string STR_EXIT_STRING #language en-US "Press ESC to exit." #language fr-FR "Press ESC to exit." -#string STR_FORM_NETWORK_DEVICE_TITLE #language en-US "Network Device" +#string STR_FORM_NETWORK_DEVICE_TITLE_HEAD #language en-US "Network Device" +#string STR_FORM_NETWORK_DEVICE_TITLE #language en-US "Network Device" #language fr-FR "Network Device" #string STR_FORM_NETWORK_DEVICE_HELP #language en-US "Network Device Help..." #language fr-FR "Network Device Help..." #string STR_NETWORK_DEVICE_STRING #language en-US "Network Device" #language fr-FR "Network Device" -- 1.9.5.msysgit.1