Reviewed-by: Yonghong Zhu <yonghong....@intel.com> 

Best Regards,
Zhu Yonghong


-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Yonghong 
Zhu
Sent: Tuesday, September 11, 2018 10:51 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming <liming....@intel.com>
Subject: [edk2] [Patch] BaseTools: Report error for incorrect hex value format

From: zhijufan <zhijux....@intel.com>

The case is user use 0x1} as a hex value for Pcd, it directly cause tool report 
traceback info. This patch add more error info.

Cc: Liming Gao <liming....@intel.com>
Cc: Yonghong Zhu <yonghong....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux....@intel.com>
---
 BaseTools/Source/Python/Common/Misc.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/Common/Misc.py 
b/BaseTools/Source/Python/Common/Misc.py
index 2cf9574..430bf6b 100644
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -1412,11 +1412,14 @@ def ParseFieldValue (Value):
     if Value.startswith('DEVICE_PATH(') and Value.endswith(')'):
         Value = Value.replace("DEVICE_PATH(", '').rstrip(')')
         Value = Value.strip().strip('"')
         return ParseDevPathValue(Value)
     if Value.lower().startswith('0x'):
-        Value = int(Value, 16)
+        try:
+            Value = int(Value, 16)
+        except:
+            raise BadExpression("invalid hex value: %s" % Value)
         if Value == 0:
             return 0, 1
         return Value, (Value.bit_length() + 7) / 8
     if Value[0].isdigit():
         Value = int(Value, 10)
--
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to