diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c index ce68425b5b..5dd362a274 100644 --- a/libavcodec/dvbsubdec.c +++ b/libavcodec/dvbsubdec.c @@ -1373,6 +1373,9 @@ static void save_display_set(DVBSubContext *ctx) for (display = ctx->display_list; display; display = display->next) { region = get_region(ctx, display->region_id); + if (!region) + return; + if (x_pos == -1) { x_pos = display->x_pos; y_pos = display->y_pos; @@ -1406,6 +1409,9 @@ static void save_display_set(DVBSubContext *ctx) for (display = ctx->display_list; display; display = display->next) { region = get_region(ctx, display->region_id); + if (!region) + return; + x_off = display->x_pos - x_pos; y_off = display->y_pos - y_pos;