diff --git a/libfreerdp/codec/dsp_ffmpeg.c b/libfreerdp/codec/dsp_ffmpeg.c index 672843c11..5576f416a 100644 --- a/libfreerdp/codec/dsp_ffmpeg.c +++ b/libfreerdp/codec/dsp_ffmpeg.c @@ -638,17 +638,20 @@ BOOL freerdp_dsp_ffmpeg_encode(FREERDP_DSP_CONTEXT* context, const AUDIO_FORMAT* { int inSamples = rest; - if (inSamples + context->bufferedSamples > context->context->frame_size) - inSamples = context->context->frame_size - context->bufferedSamples; + if ((inSamples < 0) || (context->bufferedSamples > (UINT32)(INT_MAX - inSamples))) + return FALSE; + + if (inSamples + (int)context->bufferedSamples > context->context->frame_size) + inSamples = context->context->frame_size - (int)context->bufferedSamples; rc = av_samples_copy(context->buffered->extended_data, context->resampled->extended_data, - context->bufferedSamples, copied, inSamples, + (int)context->bufferedSamples, copied, inSamples, context->context->channels, context->context->sample_fmt); rest -= inSamples; copied += inSamples; - context->bufferedSamples += inSamples; + context->bufferedSamples += (UINT32)inSamples; - if (context->context->frame_size <= context->bufferedSamples) + if (context->context->frame_size <= (int)context->bufferedSamples) { /* Encode in desired format. */ if (!ffmpeg_encode_frame(context->context, context->buffered, diff --git a/libfreerdp/codec/h264_ffmpeg.c b/libfreerdp/codec/h264_ffmpeg.c index 8d7539869..19faeb974 100644 --- a/libfreerdp/codec/h264_ffmpeg.c +++ b/libfreerdp/codec/h264_ffmpeg.c @@ -120,13 +120,16 @@ static BOOL libavcodec_create_encoder(H264_CONTEXT* h264) if (!h264 || !h264->subsystem) return FALSE; + if ((h264->width > INT_MAX) || (h264->height > INT_MAX)) + return FALSE; + sys = (H264_CONTEXT_LIBAVCODEC*)h264->pSystemData; recreate = !sys->codecEncoder || !sys->codecEncoderContext; if (sys->codecEncoderContext) { - if ((sys->codecEncoderContext->width != h264->width) || - (sys->codecEncoderContext->height != h264->height)) + if ((sys->codecEncoderContext->width != (int)h264->width) || + (sys->codecEncoderContext->height != (int)h264->height)) recreate = TRUE; }