[vlc-commits] commit: Fixed potential segfault (on failures) with avcodec audio encoder. (Laurent Aimar )
git at videolan.org
git at videolan.org
Sun May 2 00:27:10 CEST 2010
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Sat May 1 20:24:05 2010 +0200| [b86867f6bf0a2cdae0c849e8719a21416cc3c9df] | committer: Laurent Aimar
Fixed potential segfault (on failures) with avcodec audio encoder.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b86867f6bf0a2cdae0c849e8719a21416cc3c9df
---
modules/codec/avcodec/encoder.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 3287048..ecbbe91 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -947,13 +947,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, aout_buffer_t *p_aout_buf )
#if 0
msg_Warn( p_enc, "avcodec_encode_audio: %d", i_out );
#endif
- if( i_out < 0 ) break;
-
p_buffer += p_sys->i_frame_size;
p_sys->i_samples_delay -= p_sys->p_context->frame_size;
i_samples -= p_sys->p_context->frame_size;
- if( i_out == 0 ) continue;
+ if( i_out <= 0 )
+ continue;
p_block = block_New( p_enc, i_out );
memcpy( p_block->p_buffer, p_sys->p_buffer_out, i_out );
@@ -972,8 +971,8 @@ static block_t *EncodeAudio( encoder_t *p_enc, aout_buffer_t *p_aout_buf )
/* Backup the remaining raw samples */
if( i_samples )
{
- memcpy( p_sys->p_buffer + i_samples_delay * 2 *
- p_sys->p_context->channels, p_buffer,
+ memcpy( &p_sys->p_buffer[i_samples_delay * 2 * p_sys->p_context->channels],
+ p_buffer,
i_samples * 2 * p_sys->p_context->channels );
}
More information about the vlc-commits
mailing list