[x264-devel] Fix bug in --b-adapt 2 with --rc-lookahead >248
Anton Mitrofanov
git at videolan.org
Thu May 12 08:38:56 CEST 2011
x264 | branch: master | Anton Mitrofanov <BugMaster at narod.ru> | Sun May 1 17:28:56 2011 +0400| [a1ac97222c36595f04f0aa1928334e0b3a8d0efe] | committer: Jason Garrett-Glaser
Fix bug in --b-adapt 2 with --rc-lookahead >248
Problem caused by buffer overflow in strcpy.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=a1ac97222c36595f04f0aa1928334e0b3a8d0efe
---
encoder/slicetype.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/encoder/slicetype.c b/encoder/slicetype.c
index 4ecdf31..ca2719e 100644
--- a/encoder/slicetype.c
+++ b/encoder/slicetype.c
@@ -1103,9 +1103,9 @@ static int x264_slicetype_path_cost( x264_t *h, x264_mb_analysis_t *a, x264_fram
/* Uses strings due to the fact that the speed of the control functions is
negligible compared to the cost of running slicetype_frame_cost, and because
it makes debugging easier. */
-static void x264_slicetype_path( x264_t *h, x264_mb_analysis_t *a, x264_frame_t **frames, int length, char (*best_paths)[X264_LOOKAHEAD_MAX] )
+static void x264_slicetype_path( x264_t *h, x264_mb_analysis_t *a, x264_frame_t **frames, int length, char (*best_paths)[X264_LOOKAHEAD_MAX+1] )
{
- char paths[2][X264_LOOKAHEAD_MAX];
+ char paths[2][X264_LOOKAHEAD_MAX+1];
int num_paths = X264_MIN( h->param.i_bframe+1, length );
int best_cost = COST_MAX;
int idx = 0;
@@ -1279,7 +1279,7 @@ void x264_slicetype_analyse( x264_t *h, int keyframe )
{
if( num_frames > 1 )
{
- char best_paths[X264_BFRAME_MAX+1][X264_LOOKAHEAD_MAX] = {"","P"};
+ char best_paths[X264_BFRAME_MAX+1][X264_LOOKAHEAD_MAX+1] = {"","P"};
int best_path_index = num_frames % (X264_BFRAME_MAX+1);
/* Perform the frametype analysis. */
More information about the x264-devel
mailing list