From 1ddde094e30d1e30c2afb60261c990591f7e15b3 Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 25 Apr 2016 13:12:06 +0800 Subject: [PATCH] Fix a crash in Parser --- .../scala/com/github/shadowsocks/utils/Parser.scala | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/utils/Parser.scala b/src/main/scala/com/github/shadowsocks/utils/Parser.scala index 32b5802b..ad28e0fb 100644 --- a/src/main/scala/com/github/shadowsocks/utils/Parser.scala +++ b/src/main/scala/com/github/shadowsocks/utils/Parser.scala @@ -47,7 +47,7 @@ object Parser { private val pattern = "(?i)ss://([A-Za-z0-9+-/=_]+)".r private val decodedPattern = "(?i)^((.+?)(-auth)??:(.*)@(.+?):(\\d+?))$".r - def findAll(data: CharSequence) = pattern.findAllMatchIn(data).map(m => try + def findAll(data: CharSequence) = pattern.findAllMatchIn(if (data == null) "" else data).map(m => try decodedPattern.findFirstMatchIn(new String(Base64.decode(m.group(1), Base64.NO_PADDING), "UTF-8")) match { case Some(ss) => val profile = new Profile @@ -60,9 +60,9 @@ object Parser { profile case _ => null } - catch { - case ex: Exception => - Log.e(TAG, "parser error: " + m.source, ex)// Ignore - null - }).filter(_ != null) + catch { + case ex: Exception => + Log.e(TAG, "parser error: " + m.source, ex)// Ignore + null + }).filter(_ != null) }