diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc index 4370b74c97..6bb5454c82 100644 --- a/webrtc/voice_engine/channel.cc +++ b/webrtc/voice_engine/channel.cc @@ -187,6 +187,8 @@ Channel::SendPacket(int channel, const void *data, int len) // Allocate memory for encryption buffer one time only _encryptionRTPBufferPtr = new WebRtc_UWord8[kVoiceEngineMaxIpPacketSizeBytes]; + memset(_encryptionRTPBufferPtr, 0, + kVoiceEngineMaxIpPacketSizeBytes); } // Perform encryption (SRTP or external) diff --git a/webrtc/voice_engine/test/auto_test/standard/encryption_test.cc b/webrtc/voice_engine/test/auto_test/standard/encryption_test.cc index acb1a0dee5..084d216c76 100644 --- a/webrtc/voice_engine/test/auto_test/standard/encryption_test.cc +++ b/webrtc/voice_engine/test/auto_test/standard/encryption_test.cc @@ -28,6 +28,8 @@ void BasicBitInverseEncryption::encrypt(int, unsigned char* in_data, int i; for (i = 0; i < bytes_in; i++) out_data[i] = ~in_data[i]; + out_data[bytes_in] = 0; + out_data[bytes_in + 1] = 0; *bytes_out = bytes_in + 2; } @@ -46,6 +48,8 @@ void BasicBitInverseEncryption::encrypt_rtcp(int, unsigned char* in_data, int i; for (i = 0; i < bytes_in; i++) out_data[i] = ~in_data[i]; + out_data[bytes_in] = 0; + out_data[bytes_in + 1] = 0; *bytes_out = bytes_in + 2; } @@ -55,6 +59,8 @@ void BasicBitInverseEncryption::decrypt_rtcp(int, unsigned char* in_data, int i; for (i = 0; i < bytes_in; i++) out_data[i] = ~in_data[i]; + out_data[bytes_in] = 0; + out_data[bytes_in + 1] = 0; *bytes_out = bytes_in + 2; }