From cde3110e9d8b3eaacddfac57bc679623a6e43c5f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 21 Nov 2012 12:01:05 +0100 Subject: [PATCH] Add security for parsing integer value from settings --- src/org/linphone/LinphoneManager.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 458ccf668..4cca998e0 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -672,6 +672,20 @@ public final class LinphoneManager implements LinphoneCoreListener { mLc.setVideoPortRange(vPortStart, vPortEnd); } } + + private int tryToParseIntValue(String valueToParse, String defaultValue) { + return tryToParseIntValue(valueToParse, Integer.parseInt(defaultValue)); + } + + private int tryToParseIntValue(String valueToParse, int defaultValue) { + try { + int returned = Integer.parseInt(valueToParse); + return returned; + } catch (NumberFormatException nfe) { + + } + return defaultValue; + } public void initFromConf() throws LinphoneConfigException { @@ -688,7 +702,8 @@ public final class LinphoneManager implements LinphoneCoreListener { readAndSetAudioAndVideoPorts(); - int incomingCallTimeout = Integer.parseInt(getPrefString(R.string.pref_incoming_call_timeout_key, getString(R.string.pref_incoming_call_timeout_default))); + String defaultIncomingCallTimeout = getString(R.string.pref_incoming_call_timeout_default); + int incomingCallTimeout = tryToParseIntValue(getPrefString(R.string.pref_incoming_call_timeout_key, defaultIncomingCallTimeout), defaultIncomingCallTimeout); mLc.setIncomingTimeout(incomingCallTimeout); try {