From 33a25d8b495a79e8c17f46296e832b577b97f066 Mon Sep 17 00:00:00 2001 From: CGQAQ Date: Fri, 23 Aug 2019 10:07:20 +0800 Subject: [PATCH] fix potential problems about not doing null checking --- .gitignore | 2 +- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 22 +++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 30673ab1..d4837ad0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ # 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。 ################################################################################ -/v2rayN/.vs/v2rayN/v15 +/v2rayN/.vs/ /v2rayN/v2rayN/bin/Debug/app.publish /v2rayN/v2rayN/bin/Debug /v2rayN/v2rayN/obj/Debug diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index fbd585bf..1890a4c7 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1104,17 +1104,23 @@ namespace v2rayN.Handler vmessItem.network = Global.DefaultNetwork; vmessItem.headerType = Global.None; + // v2ray 鬼才机场主们往往会各种不填,或者null,后面trim的时候会出Exception + Func check_null = nullableString => nullableString == null ? "" : nullableString; + vmessItem.configVersion = Utils.ToInt(vmessQRCode.v); - vmessItem.remarks = vmessQRCode.ps; - vmessItem.address = vmessQRCode.add; + vmessItem.remarks = check_null(vmessQRCode.ps); + vmessItem.address = check_null(vmessQRCode.add); vmessItem.port = Utils.ToInt(vmessQRCode.port); - vmessItem.id = vmessQRCode.id; + vmessItem.id = check_null(vmessQRCode.id); vmessItem.alterId = Utils.ToInt(vmessQRCode.aid); - vmessItem.network = vmessQRCode.net; - vmessItem.headerType = vmessQRCode.type; - vmessItem.requestHost = vmessQRCode.host; - vmessItem.path = vmessQRCode.path; - vmessItem.streamSecurity = vmessQRCode.tls; + // 上面有默认值, 不需要手动赋值空字符串 + if(vmessQRCode.net != null) + vmessItem.network = vmessQRCode.net; + if(vmessQRCode.type != null) + vmessItem.headerType = check_null(vmessQRCode.type); + vmessItem.requestHost = check_null(vmessQRCode.host); + vmessItem.path = check_null(vmessQRCode.host); + vmessItem.streamSecurity = check_null(vmessQRCode.tls); } ConfigHandler.UpgradeServerVersion(ref vmessItem);