Skip to content

Commit 41aa56a

Browse files
committed
[stream] use Stream_EnsureRemainingCapacity
prefer this function over the more error prone Stream_EnsureCapacity
1 parent 22bb729 commit 41aa56a

File tree

14 files changed

+33
-38
lines changed

14 files changed

+33
-38
lines changed

channels/ainput/server/ainput_main.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,14 @@ static UINT ainput_server_open_channel(ainput_server* ainput)
158158
static UINT ainput_server_send_version(ainput_server* ainput)
159159
{
160160
ULONG written = 0;
161-
wStream* s = NULL;
162161

163162
WINPR_ASSERT(ainput);
164163

165-
s = ainput->buffer;
164+
wStream* s = ainput->buffer;
166165
WINPR_ASSERT(s);
167166

168167
Stream_SetPosition(s, 0);
169-
if (!Stream_EnsureCapacity(s, 10))
168+
if (!Stream_EnsureRemainingCapacity(s, 10))
170169
{
171170
WLog_WARN(TAG, "[%s] out of memory", AINPUT_DVC_CHANNEL_NAME);
172171
return ERROR_OUTOFMEMORY;

channels/client/addin.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -668,10 +668,7 @@ UINT channel_client_post_message(void* MsgsHandle, LPVOID pData, UINT32 dataLeng
668668
if (dataFlags & CHANNEL_FLAG_FIRST)
669669
{
670670
if (internals->data_in)
671-
{
672-
if (!Stream_EnsureCapacity(internals->data_in, totalLength))
673-
return CHANNEL_RC_NO_MEMORY;
674-
}
671+
Stream_SetPosition(internals->data_in, 0);
675672
else
676673
internals->data_in = Stream_New(NULL, totalLength);
677674
}

channels/cliprdr/server/cliprdr_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ static UINT cliprdr_server_read(CliprdrServerContext* context)
11131113
Stream_Read_UINT16(s, header.msgFlags); /* msgFlags (2 bytes) */
11141114
Stream_Read_UINT32(s, header.dataLen); /* dataLen (4 bytes) */
11151115

1116-
if (!Stream_EnsureCapacity(s, (header.dataLen + CLIPRDR_HEADER_LENGTH)))
1116+
if (!Stream_EnsureRemainingCapacity(s, (header.dataLen)))
11171117
{
11181118
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
11191119
return CHANNEL_RC_NO_MEMORY;

channels/rdpear/common/ndr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ BOOL ndr_start_constructed(NdrContext* context, wStream* s)
258258
{
259259
WINPR_ASSERT(context);
260260

261-
if (!Stream_EnsureCapacity(s, 8))
261+
if (!Stream_EnsureRemainingCapacity(s, 8))
262262
return FALSE;
263263

264264
if (context->constructLevel == NDR_MAX_CONSTRUCTS)

channels/rdpei/server/rdpei_main.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ UINT rdpei_server_handle_messages(RdpeiServerContext* context)
534534
Stream_SetPosition(s, 0);
535535
if (priv->expectedBytes)
536536
{
537-
if (!Stream_EnsureCapacity(s, priv->expectedBytes))
537+
if (!Stream_EnsureRemainingCapacity(s, priv->expectedBytes))
538538
{
539539
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
540540
return CHANNEL_RC_NO_MEMORY;
@@ -614,7 +614,7 @@ UINT rdpei_server_send_sc_ready(RdpeiServerContext* context, UINT32 version, UIN
614614
if (version >= RDPINPUT_PROTOCOL_V300)
615615
pduLen += 4;
616616

617-
if (!Stream_EnsureCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH + pduLen))
617+
if (!Stream_EnsureRemainingCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH + pduLen))
618618
{
619619
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
620620
return CHANNEL_RC_NO_MEMORY;
@@ -663,7 +663,7 @@ UINT rdpei_server_suspend(RdpeiServerContext* context)
663663
}
664664

665665
Stream_SetPosition(priv->outputStream, 0);
666-
if (!Stream_EnsureCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH))
666+
if (!Stream_EnsureRemainingCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH))
667667
{
668668
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
669669
return CHANNEL_RC_NO_MEMORY;
@@ -709,7 +709,7 @@ UINT rdpei_server_resume(RdpeiServerContext* context)
709709
}
710710

711711
Stream_SetPosition(priv->outputStream, 0);
712-
if (!Stream_EnsureCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH))
712+
if (!Stream_EnsureRemainingCapacity(priv->outputStream, RDPINPUT_HEADER_LENGTH))
713713
{
714714
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
715715
return CHANNEL_RC_NO_MEMORY;

channels/rdpsnd/server/rdpsnd_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1195,7 +1195,7 @@ UINT rdpsnd_server_handle_messages(RdpsndServerContext* context)
11951195

11961196
if (priv->expectedBytes)
11971197
{
1198-
if (!Stream_EnsureCapacity(s, priv->expectedBytes))
1198+
if (!Stream_EnsureRemainingCapacity(s, priv->expectedBytes))
11991199
{
12001200
WLog_ERR(TAG, "Stream_EnsureCapacity failed!");
12011201
return CHANNEL_RC_NO_MEMORY;

libfreerdp/codec/dsp.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ static BOOL freerdp_dsp_channel_mix(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
174174
switch (srcFormat->nChannels)
175175
{
176176
case 1:
177-
if (!Stream_EnsureCapacity(context->common.channelmix, size * 2))
177+
if (!Stream_EnsureRemainingCapacity(context->common.channelmix, size * 2))
178178
return FALSE;
179179

180180
for (size_t x = 0; x < samples; x++)
@@ -201,7 +201,7 @@ static BOOL freerdp_dsp_channel_mix(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
201201
switch (srcFormat->nChannels)
202202
{
203203
case 2:
204-
if (!Stream_EnsureCapacity(context->common.channelmix, size / 2))
204+
if (!Stream_EnsureRemainingCapacity(context->common.channelmix, size / 2))
205205
return FALSE;
206206

207207
/* Simply drop second channel.
@@ -281,7 +281,7 @@ static BOOL freerdp_dsp_resample(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
281281
srcFormat->nSamplesPerSec;
282282
rsize = rframes * rbytes;
283283

284-
if (!Stream_EnsureCapacity(context->common.resample, rsize))
284+
if (!Stream_EnsureRemainingCapacity(context->common.resample, rsize))
285285
return FALSE;
286286

287287
error =
@@ -362,7 +362,7 @@ static BOOL freerdp_dsp_decode_ima_adpcm(FREERDP_DSP_CONTEXT* WINPR_RESTRICT con
362362
const UINT32 block_size = context->common.format.nBlockAlign;
363363
const UINT32 channels = context->common.format.nChannels;
364364

365-
if (!Stream_EnsureCapacity(out, out_size))
365+
if (!Stream_EnsureRemainingCapacity(out, out_size))
366366
return FALSE;
367367

368368
while (size > 0)
@@ -515,7 +515,7 @@ static BOOL freerdp_dsp_decode_mp3(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
515515

516516
buffer_size = 2 * context->common.format.nChannels * context->common.format.nSamplesPerSec;
517517

518-
if (!Stream_EnsureCapacity(context->common.buffer, 2 * buffer_size))
518+
if (!Stream_EnsureRemainingCapacity(context->common.buffer, 2 * buffer_size))
519519
return FALSE;
520520

521521
pcm_l = Stream_BufferAs(context->common.buffer, short);
@@ -922,7 +922,7 @@ static BOOL freerdp_dsp_decode_ms_adpcm(FREERDP_DSP_CONTEXT* WINPR_RESTRICT cont
922922
const UINT32 channels = context->common.format.nChannels;
923923
const UINT32 block_size = context->common.format.nBlockAlign;
924924

925-
if (!Stream_EnsureCapacity(out, out_size))
925+
if (!Stream_EnsureRemainingCapacity(out, out_size))
926926
return FALSE;
927927

928928
while (size > 0)
@@ -1495,8 +1495,8 @@ BOOL freerdp_dsp_context_reset(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
14951495
nb_block_per_packet++;
14961496

14971497
context->adpcm.ima.packet_size = nb_block_per_packet * context->common.format.nBlockAlign;
1498-
Stream_EnsureCapacity(context->common.buffer, context->adpcm.ima.packet_size);
14991498
Stream_SetPosition(context->common.buffer, 0);
1499+
Stream_EnsureRemainingCapacity(context->common.buffer, context->adpcm.ima.packet_size);
15001500
}
15011501

15021502
#if defined(WITH_OPUS)

libfreerdp/codec/dsp_ffmpeg.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ static BOOL freerdp_dsp_channel_mix(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
717717
switch (srcFormat->nChannels)
718718
{
719719
case 1:
720-
if (!Stream_EnsureCapacity(context->common.channelmix, size * 2))
720+
if (!Stream_EnsureRemainingCapacity(context->common.channelmix, size * 2))
721721
return FALSE;
722722

723723
for (size_t x = 0; x < samples; x++)
@@ -747,7 +747,7 @@ static BOOL freerdp_dsp_channel_mix(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
747747
switch (srcFormat->nChannels)
748748
{
749749
case 2:
750-
if (!Stream_EnsureCapacity(context->common.channelmix, size / 2))
750+
if (!Stream_EnsureRemainingCapacity(context->common.channelmix, size / 2))
751751
return FALSE;
752752

753753
/* Simply drop second channel.

libfreerdp/core/gateway/rdg.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ static wStream* rdg_receive_packet(rdpRdg* rdg)
408408
Stream_Seek(s, 4);
409409
Stream_Read_UINT32(s, packetLength);
410410

411-
if ((packetLength > INT_MAX) || !Stream_EnsureCapacity(s, packetLength) ||
411+
if ((packetLength > INT_MAX) || !Stream_EnsureRemainingCapacity(s, packetLength - header) ||
412412
(packetLength < header))
413413
{
414414
Stream_Free(s, TRUE);

libfreerdp/core/gateway/rpc_client.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,13 +458,13 @@ static int rpc_client_recv_fragment(rdpRpc* rpc, wStream* fragment)
458458
{
459459
const rpcconn_response_hdr_t* response =
460460
(const rpcconn_response_hdr_t*)&header.response;
461-
if (!Stream_EnsureCapacity(pdu->s, response->alloc_hint))
462-
goto fail;
463461

464462
if (Stream_Length(fragment) < StubOffset + StubLength)
465463
goto fail;
466464

467465
Stream_SetPosition(fragment, StubOffset);
466+
if (!Stream_EnsureRemainingCapacity(pdu->s, StubLength))
467+
goto fail;
468468
Stream_Write(pdu->s, Stream_ConstPointer(fragment), StubLength);
469469
rpc->StubFragCount++;
470470

@@ -508,7 +508,7 @@ static int rpc_client_recv_fragment(rdpRpc* rpc, wStream* fragment)
508508
pdu->CallId = header.common.call_id;
509509

510510
const size_t len = Stream_Length(fragment);
511-
if (!Stream_EnsureCapacity(pdu->s, len))
511+
if (!Stream_EnsureRemainingCapacity(pdu->s, len))
512512
goto fail;
513513

514514
Stream_Write(pdu->s, Stream_Buffer(fragment), len);
@@ -534,7 +534,7 @@ static int rpc_client_recv_fragment(rdpRpc* rpc, wStream* fragment)
534534
pdu->CallId = header.common.call_id;
535535

536536
const size_t len = Stream_Length(fragment);
537-
if (!Stream_EnsureCapacity(pdu->s, len))
537+
if (!Stream_EnsureRemainingCapacity(pdu->s, len))
538538
goto fail;
539539

540540
Stream_Write(pdu->s, Stream_Buffer(fragment), len);

0 commit comments

Comments
 (0)