Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matrix-org
Olm
Commits
a14bf30c
Commit
a14bf30c
authored
Jan 09, 2017
by
ylecollen
Browse files
add sanity checks when releasing the objects
parent
26a7ef8d
Changes
7
Hide whitespace changes
Inline
Side-by-side
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/CommonSerializeUtils.java
View file @
a14bf30c
...
...
@@ -17,7 +17,6 @@
package
org.matrix.olm
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
java.io.IOException
;
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmAccount.java
View file @
a14bf30c
...
...
@@ -77,8 +77,10 @@ public class OlmAccount extends CommonSerializeUtils implements Serializable {
* Release native account and invalid its JAVA reference counter part.<br>
* Public API for {@link #releaseAccountJni()}.
*/
public
void
releaseAccount
(){
releaseAccountJni
();
public
void
releaseAccount
()
{
if
(
0
!=
mNativeId
)
{
releaseAccountJni
();
}
mNativeId
=
0
;
}
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmException.java
View file @
a14bf30c
...
...
@@ -55,15 +55,11 @@ public class OlmException extends IOException {
public
static
final
int
EXCEPTION_CODE_SESSION_DECRYPT_MESSAGE
=
405
;
public
static
final
int
EXCEPTION_CODE_SESSION_SESSION_IDENTIFIER
=
406
;
public
static
final
int
EXCEPTION_CODE_UTILITY_CREATION
=
50
1
;
public
static
final
int
EXCEPTION_CODE_UTILITY_VERIFY_SIGNATURE
=
50
0
;
public
static
final
int
EXCEPTION_CODE_UTILITY_CREATION
=
50
0
;
public
static
final
int
EXCEPTION_CODE_UTILITY_VERIFY_SIGNATURE
=
50
1
;
// exception human readable messages
public
static
final
String
EXCEPTION_MSG_NEW_OUTBOUND_GROUP_SESSION
=
"createNewSession() failed"
;
public
static
final
String
EXCEPTION_MSG_NEW_INBOUND_GROUP_SESSION
=
"createNewSession() failed"
;
public
static
final
String
EXCEPTION_MSG_INVALID_PARAMS_DESERIALIZATION
=
"invalid de-serialized parameters"
;
public
static
final
String
EXCEPTION_MSG_INIT_ACCOUNT_CREATION
=
"initNewAccount() failed"
;
public
static
final
String
EXCEPTION_MSG_INIT_SESSION_CREATION
=
"initNewSession() failed"
;
/** exception code to be taken from: {@link #EXCEPTION_CODE_CREATE_OUTBOUND_GROUP_SESSION}, {@link #EXCEPTION_CODE_CREATE_INBOUND_GROUP_SESSION},
* {@link #EXCEPTION_CODE_INIT_OUTBOUND_GROUP_SESSION}, {@link #EXCEPTION_CODE_INIT_INBOUND_GROUP_SESSION}..**/
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmInboundGroupSession.java
View file @
a14bf30c
...
...
@@ -70,7 +70,9 @@ public class OlmInboundGroupSession extends CommonSerializeUtils implements Seri
* Public API for {@link #releaseSessionJni()}.
*/
public
void
releaseSession
(){
releaseSessionJni
();
if
(
0
!=
mNativeId
)
{
releaseSessionJni
();
}
mNativeId
=
0
;
}
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmOutboundGroupSession.java
View file @
a14bf30c
...
...
@@ -59,7 +59,9 @@ public class OlmOutboundGroupSession extends CommonSerializeUtils implements Ser
* Public API for {@link #releaseSessionJni()}.
*/
public
void
releaseSession
()
{
releaseSessionJni
();
if
(
0
!=
mNativeId
)
{
releaseSessionJni
();
}
mNativeId
=
0
;
}
...
...
@@ -252,7 +254,7 @@ public class OlmOutboundGroupSession extends CommonSerializeUtils implements Ser
protected
void
deserialize
(
byte
[]
aSerializedData
,
byte
[]
aKey
)
throws
Exception
{
createNewSession
();
String
errorMsg
=
null
;
String
errorMsg
;
try
{
if
((
null
==
aSerializedData
)
||
(
null
==
aKey
))
{
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmSession.java
View file @
a14bf30c
...
...
@@ -66,8 +66,10 @@ public class OlmSession extends CommonSerializeUtils implements Serializable {
* Release native session and invalid its JAVA reference counter part.<br>
* Public API for {@link #releaseSessionJni()}.
*/
public
void
releaseSession
(){
releaseSessionJni
();
public
void
releaseSession
()
{
if
(
0
!=
mNativeId
)
{
releaseSessionJni
();
}
mNativeId
=
0
;
}
...
...
@@ -262,7 +264,11 @@ public class OlmSession extends CommonSerializeUtils implements Serializable {
OlmMessage
encryptedMsgRetValue
=
new
OlmMessage
();
try
{
encryptedMsgRetValue
.
mCipherText
=
new
String
(
encryptMessageJni
(
aClearMsg
.
getBytes
(
"UTF-8"
),
encryptedMsgRetValue
),
"UTF-8"
);
byte
[]
encryptedMessageBuffer
=
encryptMessageJni
(
aClearMsg
.
getBytes
(
"UTF-8"
),
encryptedMsgRetValue
);
if
(
null
!=
encryptedMessageBuffer
)
{
encryptedMsgRetValue
.
mCipherText
=
new
String
(
encryptedMessageBuffer
,
"UTF-8"
);
}
}
catch
(
Exception
e
)
{
Log
.
e
(
LOG_TAG
,
"## encryptMessage(): failed "
+
e
.
getMessage
());
throw
new
OlmException
(
OlmException
.
EXCEPTION_CODE_SESSION_ENCRYPT_MESSAGE
,
e
.
getMessage
());
...
...
@@ -360,24 +366,23 @@ public class OlmSession extends CommonSerializeUtils implements Serializable {
protected
void
deserialize
(
byte
[]
aSerializedData
,
byte
[]
aKey
)
throws
Exception
{
createNewSession
();
String
Buffer
errorMsg
=
new
StringBuffer
()
;
String
errorMsg
;
try
{
String
jniError
;
if
((
null
==
aSerializedData
)
||
(
null
==
aKey
))
{
Log
.
e
(
LOG_TAG
,
"## deserialize(): invalid input parameters"
);
errorMsg
.
append
(
"invalid input parameters"
)
;
}
else
if
(
null
!=
(
jniError
=
deserializeJni
(
aSerializedData
,
aKey
)))
{
errorMsg
.
append
(
jniError
);
errorMsg
=
"invalid input parameters"
;
}
else
{
errorMsg
=
deserializeJni
(
aSerializedData
,
aKey
);
}
}
catch
(
Exception
e
)
{
Log
.
e
(
LOG_TAG
,
"## deserialize() failed "
+
e
.
getMessage
());
errorMsg
.
append
(
e
.
getMessage
()
)
;
errorMsg
=
e
.
getMessage
();
}
if
(
errorMsg
.
length
()
>
0
)
{
if
(
!
TextUtils
.
isEmpty
(
errorMsg
)
)
{
releaseSession
();
throw
new
OlmException
(
OlmException
.
EXCEPTION_CODE_ACCOUNT_DESERIALIZATION
,
String
.
valueOf
(
errorMsg
)
)
;
throw
new
OlmException
(
OlmException
.
EXCEPTION_CODE_ACCOUNT_DESERIALIZATION
,
errorMsg
);
}
}
...
...
java/android/OlmLibSdk/olm-sdk/src/main/java/org/matrix/olm/OlmUtility.java
View file @
a14bf30c
...
...
@@ -35,18 +35,21 @@ public class OlmUtility {
**/
private
long
mNativeId
;
public
OlmUtility
()
{
public
OlmUtility
()
throws
OlmException
{
initUtility
();
}
/**
* Create a native utility instance.
* To be called before any other API call.
* @
return true if init succeed, false otherwise.
* @
exception OlmException the exception
*/
private
boolean
initUtility
()
{
mNativeId
=
createUtilityJni
();
return
(
0
!=
mNativeId
);
private
void
initUtility
()
throws
OlmException
{
try
{
mNativeId
=
createUtilityJni
();
}
catch
(
Exception
e
)
{
throw
new
OlmException
(
OlmException
.
EXCEPTION_CODE_UTILITY_CREATION
,
e
.
getMessage
());
}
}
private
native
long
createUtilityJni
();
...
...
@@ -55,8 +58,10 @@ public class OlmUtility {
* Release native instance.<br>
* Public API for {@link #releaseUtilityJni()}.
*/
public
void
releaseUtility
(){
releaseUtilityJni
();
public
void
releaseUtility
()
{
if
(
0
!=
mNativeId
)
{
releaseUtilityJni
();
}
mNativeId
=
0
;
}
private
native
void
releaseUtilityJni
();
...
...
@@ -111,7 +116,7 @@ public class OlmUtility {
* @return hash value if operation succeed, null otherwise
*/
public
String
sha256
(
String
aMessageToHash
)
{
String
hashRetValue
=
null
;
String
hashRetValue
=
null
;
if
(
null
!=
aMessageToHash
)
{
try
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment