On 23.11.2016 14:48, wm4 wrote: > On Wed, 9 Nov 2016 23:27:04 +0100 > Andreas Cadhalpun <andreas.cadhal...@googlemail.com> wrote: > >> Rects with positive w/h/linesize but no data are invalid. >> >> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> >> --- >> libavcodec/pgssubdec.c | 9 +++++---- >> 1 file changed, 5 insertions(+), 4 deletions(-) >> >> diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c >> index cef477d..b50b37b 100644 >> --- a/libavcodec/pgssubdec.c >> +++ b/libavcodec/pgssubdec.c >> @@ -556,12 +556,13 @@ static int display_end_segment(AVCodecContext *avctx, >> void *data, >> >> sub->rects[i]->x = ctx->presentation.objects[i].x; >> sub->rects[i]->y = ctx->presentation.objects[i].y; >> - sub->rects[i]->w = object->w; >> - sub->rects[i]->h = object->h; >> - >> - sub->rects[i]->linesize[0] = object->w; >> >> if (object->rle) { >> + sub->rects[i]->w = object->w; >> + sub->rects[i]->h = object->h; >> + >> + sub->rects[i]->linesize[0] = object->w; >> + >> if (object->rle_remaining_len) { >> av_log(avctx, AV_LOG_ERROR, "RLE data length %u is %u bytes >> shorter than expected\n", >> object->rle_data_len, object->rle_remaining_len); > > Is there any indication that API users are fine with rects that have > w=h=0 (or that the API allows it), and that they don't access data with > memcpy? Seems a bit odd. Since error handling set w=h=0 before, it's > probably ok though.
Since rects can contain either a bitmap, or text/ass or both, API users have to deal gracefully with rects without bitmap, i.e. w=h=0. Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel