From 9d64705dead7c826515cee0bafce3c262bc9cbf2 Mon Sep 17 00:00:00 2001 From: "xians@webrtc.org" Date: Tue, 23 Aug 2011 09:14:56 +0000 Subject: [PATCH] The method AudioDeviceWindowsWave::RecProc can use uninitialized variables t1 and t2. This results in an exception in debug mode and unpredictable behavior in release mode. The problem is at line 3514: // Calculate processing time consumedTime = (int)(t2.QuadPart-t1.QuadPart); Bug=http://code.google.com/p/webrtc/issues/detail?id=42 Test=none Review URL: http://webrtc-codereview.appspot.com/121002 git-svn-id: http://webrtc.googlecode.com/svn/trunk@419 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../main/source/win/audio_device_wave_win.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/audio_device/main/source/win/audio_device_wave_win.cc b/src/modules/audio_device/main/source/win/audio_device_wave_win.cc index e6ea8f3e1..645c807eb 100644 --- a/src/modules/audio_device/main/source/win/audio_device_wave_win.cc +++ b/src/modules/audio_device/main/source/win/audio_device_wave_win.cc @@ -3510,11 +3510,13 @@ WebRtc_Word32 AudioDeviceWindowsWave::RecProc(LONGLONG& consumedTime) // increase main buffer count since one complete buffer has now been delivered _recBufCount++; - // Calculate processing time - consumedTime = (int)(t2.QuadPart-t1.QuadPart); - // handle wraps, time should not be higher than a second - if ((consumedTime > _perfFreq.QuadPart) || (consumedTime < 0)) - consumedTime = 0; + if (send) { + // Calculate processing time + consumedTime = (int)(t2.QuadPart-t1.QuadPart); + // handle wraps, time should not be higher than a second + if ((consumedTime > _perfFreq.QuadPart) || (consumedTime < 0)) + consumedTime = 0; + } } // if ((nBytesRecorded == fullBufferSizeInBytes))