Fix "invalid address or address of corrupt passed to dlfree" in 32bits platform devices
This commit is contained in:
parent
7e69d96afc
commit
4545b7bc19
3 changed files with 8 additions and 8 deletions
|
@ -150,7 +150,7 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(sessionIdentifierJni)(JNIEn
|
||||||
size_t lengthSessionId = olm_inbound_group_session_id_length(sessionPtr);
|
size_t lengthSessionId = olm_inbound_group_session_id_length(sessionPtr);
|
||||||
LOGD(" ## sessionIdentifierJni(): inbound group session lengthSessionId=%lu",lengthSessionId);
|
LOGD(" ## sessionIdentifierJni(): inbound group session lengthSessionId=%lu",lengthSessionId);
|
||||||
|
|
||||||
if(NULL == (sessionIdPtr = (uint8_t*)malloc(lengthSessionId*sizeof(uint8_t))))
|
if(NULL == (sessionIdPtr = (uint8_t*)malloc((lengthSessionId+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE(" ## sessionIdentifierJni(): failure - inbound group session identifier allocation OOM");
|
LOGE(" ## sessionIdentifierJni(): failure - inbound group session identifier allocation OOM");
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,7 @@ JNIEXPORT jstring OLM_INBOUND_GROUP_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *
|
||||||
LOGD(" ## decryptMessageJni(): maxPlaintextLength=%lu",maxPlainTextLength);
|
LOGD(" ## decryptMessageJni(): maxPlaintextLength=%lu",maxPlainTextLength);
|
||||||
|
|
||||||
// allocate output decrypted message
|
// allocate output decrypted message
|
||||||
plainTextMsgPtr = static_cast<uint8_t*>(malloc(maxPlainTextLength*sizeof(uint8_t)));
|
plainTextMsgPtr = static_cast<uint8_t*>(malloc((maxPlainTextLength+1)*sizeof(uint8_t)));
|
||||||
|
|
||||||
// decrypt, but before reload encrypted buffer (previous one was destroyed)
|
// decrypt, but before reload encrypted buffer (previous one was destroyed)
|
||||||
memcpy(tempEncryptedPtr, encryptedMsgPtr, encryptedMsgLength);
|
memcpy(tempEncryptedPtr, encryptedMsgPtr, encryptedMsgLength);
|
||||||
|
|
|
@ -150,7 +150,7 @@ JNIEXPORT jstring OLM_OUTBOUND_GROUP_SESSION_FUNC_DEF(sessionIdentifierJni)(JNIE
|
||||||
size_t lengthSessionId = olm_outbound_group_session_id_length(sessionPtr);
|
size_t lengthSessionId = olm_outbound_group_session_id_length(sessionPtr);
|
||||||
LOGD(" ## sessionIdentifierJni(): outbound group session lengthSessionId=%lu",lengthSessionId);
|
LOGD(" ## sessionIdentifierJni(): outbound group session lengthSessionId=%lu",lengthSessionId);
|
||||||
|
|
||||||
if(NULL == (sessionIdPtr = (uint8_t*)malloc(lengthSessionId*sizeof(uint8_t))))
|
if(NULL == (sessionIdPtr = (uint8_t*)malloc((lengthSessionId+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE(" ## sessionIdentifierJni(): failure - outbound identifier allocation OOM");
|
LOGE(" ## sessionIdentifierJni(): failure - outbound identifier allocation OOM");
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,7 @@ JNIEXPORT jstring OLM_OUTBOUND_GROUP_SESSION_FUNC_DEF(sessionKeyJni)(JNIEnv *env
|
||||||
size_t sessionKeyLength = olm_outbound_group_session_key_length(sessionPtr);
|
size_t sessionKeyLength = olm_outbound_group_session_key_length(sessionPtr);
|
||||||
LOGD(" ## sessionKeyJni(): sessionKeyLength=%lu",sessionKeyLength);
|
LOGD(" ## sessionKeyJni(): sessionKeyLength=%lu",sessionKeyLength);
|
||||||
|
|
||||||
if(NULL == (sessionKeyPtr = (uint8_t*)malloc(sessionKeyLength*sizeof(uint8_t))))
|
if(NULL == (sessionKeyPtr = (uint8_t*)malloc((sessionKeyLength+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE(" ## sessionKeyJni(): failure - session key allocation OOM");
|
LOGE(" ## sessionKeyJni(): failure - session key allocation OOM");
|
||||||
}
|
}
|
||||||
|
@ -285,7 +285,7 @@ JNIEXPORT jstring OLM_OUTBOUND_GROUP_SESSION_FUNC_DEF(encryptMessageJni)(JNIEnv
|
||||||
|
|
||||||
// compute max encrypted length
|
// compute max encrypted length
|
||||||
size_t encryptedMsgLength = olm_group_encrypt_message_length(sessionPtr,clearMsgLength);
|
size_t encryptedMsgLength = olm_group_encrypt_message_length(sessionPtr,clearMsgLength);
|
||||||
if(NULL == (encryptedMsgPtr = (uint8_t*)malloc(encryptedMsgLength*sizeof(uint8_t))))
|
if(NULL == (encryptedMsgPtr = (uint8_t*)malloc((encryptedMsgLength+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE(" ## encryptMessageJni(): failure - encryptedMsgPtr buffer OOM");
|
LOGE(" ## encryptMessageJni(): failure - encryptedMsgPtr buffer OOM");
|
||||||
}
|
}
|
||||||
|
|
|
@ -497,7 +497,7 @@ JNIEXPORT jint OLM_SESSION_FUNC_DEF(encryptMessageJni)(JNIEnv *env, jobject thiz
|
||||||
// alloc buffer for encrypted message
|
// alloc buffer for encrypted message
|
||||||
size_t clearMsgLength = (size_t)env->GetStringUTFLength(aClearMsg);
|
size_t clearMsgLength = (size_t)env->GetStringUTFLength(aClearMsg);
|
||||||
size_t encryptedMsgLength = olm_encrypt_message_length(sessionPtr, clearMsgLength);
|
size_t encryptedMsgLength = olm_encrypt_message_length(sessionPtr, clearMsgLength);
|
||||||
if(NULL == (encryptedMsgPtr = (void*)malloc(encryptedMsgLength*sizeof(uint8_t))))
|
if(NULL == (encryptedMsgPtr = (void*)malloc((encryptedMsgLength+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE("## encryptMessageJni(): failure - encryptedMsgPtr buffer OOM");
|
LOGE("## encryptMessageJni(): failure - encryptedMsgPtr buffer OOM");
|
||||||
}
|
}
|
||||||
|
@ -640,7 +640,7 @@ JNIEXPORT jstring OLM_SESSION_FUNC_DEF(decryptMessageJni)(JNIEnv *env, jobject t
|
||||||
LOGD("## decryptMessageJni(): maxPlaintextLength=%lu",maxPlainTextLength);
|
LOGD("## decryptMessageJni(): maxPlaintextLength=%lu",maxPlainTextLength);
|
||||||
|
|
||||||
// allocate output decrypted message
|
// allocate output decrypted message
|
||||||
plainTextMsgPtr = static_cast<void*>(malloc(maxPlainTextLength*sizeof(uint8_t)));
|
plainTextMsgPtr = static_cast<void*>(malloc((maxPlainTextLength+1)*sizeof(uint8_t)));
|
||||||
|
|
||||||
// decrypt, but before reload encrypted buffer (previous one was destroyed)
|
// decrypt, but before reload encrypted buffer (previous one was destroyed)
|
||||||
memcpy(tempEncryptedPtr, encryptedMsgPtr, encryptedMsgLength);
|
memcpy(tempEncryptedPtr, encryptedMsgPtr, encryptedMsgLength);
|
||||||
|
@ -705,7 +705,7 @@ JNIEXPORT jstring OLM_SESSION_FUNC_DEF(getSessionIdentifierJni)(JNIEnv *env, job
|
||||||
{
|
{
|
||||||
LOGE("## getSessionIdentifierJni(): failure - invalid Session ptr=NULL");
|
LOGE("## getSessionIdentifierJni(): failure - invalid Session ptr=NULL");
|
||||||
}
|
}
|
||||||
else if(NULL == (sessionIdPtr = (void*)malloc(lengthSessionId*sizeof(uint8_t))))
|
else if(NULL == (sessionIdPtr = (void*)malloc((lengthSessionId+1)*sizeof(uint8_t))))
|
||||||
{
|
{
|
||||||
LOGE("## getSessionIdentifierJni(): failure - identifier allocation OOM");
|
LOGE("## getSessionIdentifierJni(): failure - identifier allocation OOM");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue