Author: janderwald
Date: Fri Oct 29 01:09:13 2010
New Revision: 49337
URL:
http://svn.reactos.org/svn/reactos?rev=49337&view=rev
Log:
[PORTCLS]
- Fix stupid bug which lead to access an invalid buffer.
- dedicated to igorko
Modified:
trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/…
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1]
(original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/pin_wavecyclic.cpp [iso-8859-1] Fri
Oct 29 01:09:13 2010
@@ -699,15 +699,15 @@
if (!NT_SUCCESS(Status))
{
Gap = Position - m_CommonBufferOffset;
- if (Gap > m_FrameSize)
+ if (Gap > BufferLength)
{
// insert silence samples
DPRINT1("Inserting Silence Buffer Offset %lu GapLength %lu\n",
m_CommonBufferOffset, BufferLength);
m_Stream->Silence((PUCHAR)m_CommonBuffer + m_CommonBufferOffset,
BufferLength);
m_CommonBufferOffset += BufferLength;
- break;
}
+ break;
}
BytesToCopy = min(BufferLength, BufferSize);
@@ -758,7 +758,7 @@
if (!NT_SUCCESS(Status))
{
Gap = m_CommonBufferSize - m_CommonBufferOffset + Position;
- if (Gap > m_FrameSize)
+ if (Gap > BufferLength)
{
// insert silence samples
DPRINT1("Overlap Inserting Silence Buffer Size %lu Offset %lu Gap
%lu Position %lu\n", m_CommonBufferSize, m_CommonBufferOffset, Gap, Position);
@@ -771,7 +771,7 @@
BytesToCopy = min(BufferLength, BufferSize);
- if (m_Capture)
+ if (m_Capture)
{
m_DmaChannel->CopyFrom(Buffer,
(PUCHAR)m_CommonBuffer +
m_CommonBufferOffset,
@@ -1290,7 +1290,7 @@
PC_ASSERT(NT_SUCCESS(Status));
PC_ASSERT(m_FrameSize);
- DPRINT1("Bits %u Samples %u Channels %u Tag %u FrameSize %u CommonBufferSize
%lu\n", ((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.wBitsPerSample,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.nSamplesPerSec,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.nChannels,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.wFormatTag, m_FrameSize,
m_CommonBufferSize);
+ DPRINT1("Bits %u Samples %u Channels %u Tag %u FrameSize %u CommonBufferSize
%lu, CommonBuffer %p\n",
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.wBitsPerSample,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.nSamplesPerSec,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.nChannels,
((PKSDATAFORMAT_WAVEFORMATEX)(DataFormat))->WaveFormatEx.wFormatTag, m_FrameSize,
m_CommonBufferSize, m_DmaChannel->SystemAddress());
/* set up allocator framing */