From patchwork Fri Dec 17 21:51:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 32699 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1993595iog; Fri, 17 Dec 2021 13:53:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJyQlrn901fKm4f3329Y5v/mDD+WM6ssi2ypxUNLBj5QKGbQwNC8o8LtrL83zXZGJRV/i7JL X-Received: by 2002:a17:906:5856:: with SMTP id h22mr4069352ejs.266.1639778014533; Fri, 17 Dec 2021 13:53:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639778014; cv=none; d=google.com; s=arc-20160816; b=Pp8YvEdA/v4GLV1grkDg7XSVNvB/BmGpcIQwzHK/wGECiwC5FW60/dIjwKfmUJc3Am RQgP20GzmCp1K/0ZfPnn3UE1H8Ar3dsaCmhZdSCJXgAC6y+ZEPMybm2IS8pKh5tYD/w5 Li/CfRpVhpctiQkUtVVHRmZmCVEvSc8OlNfsyePtKBM/hskbuGegOu121o6Nh9tsqbxW +q4JkwOf9MefO7+mO4BFK8FdXfDQ2XXfkru2mQfEJT6y0ESb6Bx/jaW2qmnPQF21Wq93 /NdQk3tj6QMfNG1bRfY7kXPxRBml3FMEUWg6i8UdNwL4AohEwH0L8eRLiSchb0sWzYf/ 4yiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=JIOgrGuf7lhWYHwSPSxJGxS7sTC5EWWngVHaxQm0TTg=; b=ys3lbCVDl/1oJVuVO2VD2ZbvypWGEWklV36zNkx2tfMGh7fqqyIIEwTkphp46sGAQ8 HF45jpKhcjfC4T+ZHhTVJatg/cpTd9y4ttUfdYYHSuGTMju3Gvw4NUr8fQBnMcH7/pr9 KSfgaDB0YkdNVbeHA5zR1DeQ+gmlJiTsNaHv2otWAT4PzmTIVEzl9ywnAjaxt2YNuril xVpExYgI+kevZXYGwT1mo/XcmU5cPd2VFGflFryFKAEy+n8BM3Gk76pz21bXj6jGH8yB 2dnzYbUbsGa9iUGuIZmWVNWZgpGP5BS3Q2v42BM/ynUdLDoj+djZGQN0CRNHwusox1Uw W1wg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id jg39si6577380ejc.71.2021.12.17.13.53.34; Fri, 17 Dec 2021 13:53:34 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B10EA68AF67; Fri, 17 Dec 2021 23:53:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe05-3.mx.upcmail.net (vie01a-dmta-pe05-3.mx.upcmail.net [84.116.36.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CAF3868AE8E for ; Fri, 17 Dec 2021 23:52:56 +0200 (EET) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1myL9s-007PYc-0I for ffmpeg-devel@ffmpeg.org; Fri, 17 Dec 2021 22:52:56 +0100 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id yL8tmhDtTSgGFyL8tmiq2D; Fri, 17 Dec 2021 22:51:55 +0100 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=f8Q2+96M c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=E1l9eSazYH0F0_BWe28A:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Fri, 17 Dec 2021 22:51:52 +0100 Message-Id: <20211217215155.19805-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 X-CMAE-Envelope: MS4wfMAoYyTrjuUg7QHZnG9okvJUHGZLH2I1zraPZsKMnDCTFwTa4dg4qsVu2oZdPzjaPfOCL9Z6UcviVoSB8SmK+F+hK54Fd/yt9Hedh5bqFEmuESuHcz1T 5JzUbxFetGrhAfo6f/DY7eLw7e2h3E/2ZbYQ17OiPwnIzo2hs5hxWSmp Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/ass: Faster ff_ass_add_rect() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ZdZBjRt3lTzW Signed-off-by: Michael Niedermayer --- libavcodec/ass.c | 32 ++++++++++++++++++++++++++------ libavcodec/ass.h | 7 +++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/libavcodec/ass.c b/libavcodec/ass.c index 725e4d42ba1..d0a4d678bb4 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -114,17 +114,30 @@ char *ff_ass_get_dialog(int readorder, int layer, const char *style, speaker ? speaker : "", text); } -int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, +int ff_ass_add_rect2(AVSubtitle *sub, const char *dialog, int readorder, int layer, const char *style, - const char *speaker) + const char *speaker, size_t *nb_rect_allocated) { - AVSubtitleRect **rects, *rect; + AVSubtitleRect **rects = sub->rects, *rect; char *ass_str; + uint64_t new_nb = 0; - rects = av_realloc_array(sub->rects, sub->num_rects+1, sizeof(*sub->rects)); - if (!rects) + if (nb_rect_allocated && *nb_rect_allocated <= sub->num_rects) { + new_nb = sub->num_rects + sub->num_rects/16LL + 1; + } else if (!nb_rect_allocated) + new_nb = sub->num_rects + 1LL; + if (new_nb > SIZE_MAX) return AVERROR(ENOMEM); - sub->rects = rects; + + if (new_nb) { + rects = av_realloc_array(rects, new_nb, sizeof(*sub->rects)); + if (!rects) + return AVERROR(ENOMEM); + if (nb_rect_allocated) + *nb_rect_allocated = new_nb; + sub->rects = rects; + } + rect = av_mallocz(sizeof(*rect)); if (!rect) return AVERROR(ENOMEM); @@ -137,6 +150,13 @@ int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, return 0; } +int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, + int readorder, int layer, const char *style, + const char *speaker) +{ + return ff_ass_add_rect2(sub, dialog, readorder, layer, style, speaker, NULL); +} + void ff_ass_decoder_flush(AVCodecContext *avctx) { FFASSDecoderContext *s = avctx->priv_data; diff --git a/libavcodec/ass.h b/libavcodec/ass.h index 2c260e4e785..784f46c42c5 100644 --- a/libavcodec/ass.h +++ b/libavcodec/ass.h @@ -118,6 +118,13 @@ int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, int readorder, int layer, const char *style, const char *speaker); +/** + * Add an ASS dialog to a subtitle. + */ +int ff_ass_add_rect2(AVSubtitle *sub, const char *dialog, + int readorder, int layer, const char *style, + const char *speaker, size_t *nb_rect_allocated); + /** * Helper to flush a text subtitles decoder making use of the * FFASSDecoderContext. From patchwork Fri Dec 17 21:51:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 32698 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1993477iog; Fri, 17 Dec 2021 13:53:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7c7fvUw8qMsqgBjlboIIAB0Rxohc382TULyFK9zWrWGGayo1rJJji5fYd6ySAZGyF0ON2 X-Received: by 2002:aa7:c802:: with SMTP id a2mr1071636edt.310.1639778003886; Fri, 17 Dec 2021 13:53:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639778003; cv=none; d=google.com; s=arc-20160816; b=fkzKYSn2JXV1mk9I0oQsysEGgPoWPzIz4AsK0g07NtYRvS8QLAsXNmV/DGrumLc7uv 9C5yni2fHwPmJXm/LBql78bsfOxFlRiDZi4bmo8aErQPAn4T+ZPyXqFIFpB2o1ddy8QW e7e4KRhrOxJmRgwjXBCHVs+h9ABXcpotsQC+Z3yiGFCM0FjNiFgz0p/91Q3kY/JhODdn J7vFuWnVzK2A+moBxZeeiVK47nF0/jKIeczx2vyJwyiJ+X09aAehAX9t3/WEf0kg30MM 2XNUB34m6lEqFNILxa4fCTHfNL20jcuDKifrCjJHrEU/xoxQ/saAWxU2fo4/m10vNYAD Lj2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=05DRDYSOwSJJK+0sDKMG/pPEYcpVR+JcjiXU/s8+zTs=; b=OA7SwmVknTh4E99e4jgJ74xCjTFteo4nX2Q8u8/j7lt8zoDR+pzya1wAVrsMDRl/5D eGu+znvsWwfIsGAHlGjip3ps7UBlbwXDQ0Pw2jUt+44dA8l5jSlB+JM2Td5c7hC4BoB3 TP5k5TGIMKI2sl+ex2hcjuF2sNS7rxz8vkimJ6dLOqAf8hahFdawiETQAvzhIzwfy6/x hFDRU3X2cY7apyP4/yqVNOs188r+rM34DhTwK4hXTUifZAre31BnCUGGN4DSH/Cfu3l1 IiOoQYv2ku73RYlDgURftuMz7qXZKy0IuFgZoe18PjeInkvoE/E5O+j+Bg0o9E97sY72 /ifA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b4si565501edm.67.2021.12.17.13.53.23; Fri, 17 Dec 2021 13:53:23 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BD29E68AF54; Fri, 17 Dec 2021 23:53:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe04-1.mx.upcmail.net (vie01a-dmta-pe04-1.mx.upcmail.net [62.179.121.163]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CB63068AEBA for ; Fri, 17 Dec 2021 23:52:56 +0200 (EET) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe04.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1myL9s-00A1Hs-0I for ffmpeg-devel@ffmpeg.org; Fri, 17 Dec 2021 22:52:56 +0100 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id yL8umhDvMSgGFyL8umiq36; Fri, 17 Dec 2021 22:51:56 +0100 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=f8Q2+96M c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=NEAV23lmAAAA:8 a=zR1LR-XVt_9DNYdS0-UA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Fri, 17 Dec 2021 22:51:53 +0100 Message-Id: <20211217215155.19805-2-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211217215155.19805-1-michael@niedermayer.cc> References: <20211217215155.19805-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfMAoYyTrjuUg7QHZnG9okvJUHGZLH2I1zraPZsKMnDCTFwTa4dg4qsVu2oZdPzjaPfOCL9Z6UcviVoSB8SmK+F+hK54Fd/yt9Hedh5bqFEmuESuHcz1T 5JzUbxFetGrhAfo6f/DY7eLw7e2h3E/2ZbYQ17OiPwnIzo2hs5hxWSmp Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/ccaption_dec: Use ff_ass_add_rect2() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BkA71lNydBqZ Fixes: Timeout Fixes: 42258/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CCAPTION_fuzzer-5540144118104064 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/ccaption_dec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index 27c61527f6e..2cd5b0aef0d 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -850,6 +850,7 @@ static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avp int len = avpkt->size; int ret = 0; int i; + size_t nb_rect_allocated = 0; for (i = 0; i < len; i += 3) { uint8_t hi, cc_type = bptr[i] & 1; @@ -886,7 +887,7 @@ static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avp AV_TIME_BASE_Q, ms_tb); else sub->end_display_time = -1; - ret = ff_ass_add_rect(sub, ctx->buffer[bidx].str, ctx->readorder++, 0, NULL, NULL); + ret = ff_ass_add_rect2(sub, ctx->buffer[bidx].str, ctx->readorder++, 0, NULL, NULL, &nb_rect_allocated); if (ret < 0) return ret; ctx->last_real_time = sub->pts; From patchwork Fri Dec 17 21:51:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 32696 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1993290iog; Fri, 17 Dec 2021 13:53:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJzr+UWq4X854Zklfn/2O+bSeCqlonaGnebW1vd2HlSlnNJBPknMPP9w/9pBZLRxDmF7tQ70 X-Received: by 2002:aa7:cb1a:: with SMTP id s26mr4691949edt.19.1639777986074; Fri, 17 Dec 2021 13:53:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639777986; cv=none; d=google.com; s=arc-20160816; b=yUmhQHXJCyjULZDfFmA9niy5sTwGzJxvJuV1KYT/YpEZWWIJkuoL+cyCyCHTaMrzY5 uWqqvsngQnosLPaXV+L1Q97Lg6bWkFr0pAM5EfWHZ1iNtKIm+XVQWe77UtAjUEzdEfZB jRD/80Cmb2PYmP15Kd9dX5ZXF3eDFijSKconT+mhQwmztYlgfsBLACHCiZu+3WZHFc1e aXkQqouQH4rU2tFjWuNdxoNVt2ySlEOLhT5F0jDae96Yby8zSSQd+wGQJgHK0mFoy7b2 hQ1KniwTdkeAXlrt7FLVXuwD97EBpXQXx/ev+EqnpR4GrCDoIBjaKe2agJZJBgFqc9xO QnBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=vBZuYII4OMMgnBsXER5S23Ja9fweDrQGDe2NFghdmKQ=; b=JgdjpgwRiuqe0ukfpUukrgZYTpmsQ5IIrEr+ei/ah8iG1DBGL5TuS/r9Bqa+ALmJkT 7/gejqegETBcuWy6eaZOUVjvY5xAXFRPpgrshtU6lrX3KQ8JkeETUJ1cyHYdCqfc0IkT Yg/1LYUcuExO2Can+0wi4qgfcq8HUdSCwreiW6C0AdfgZBFuJgrxjB0BR52KYOZY9s2p wmTg9LQwT2KF/SNK7gAKj07iXvbTTXyT2wsiqK65Nu5QL9SaDTYCCz7+N3F7fnWnyDnk quDN0gpRtLyK/sUnm3wxMGjlY+tzz9hWQ/kIag/AWaW9PKUdIGhlPA2NGmdvs7wv4B0D 5pbQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w12si7113381edj.155.2021.12.17.13.53.05; Fri, 17 Dec 2021 13:53:06 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 898B568AF36; Fri, 17 Dec 2021 23:53:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe05-3.mx.upcmail.net (vie01a-dmta-pe05-3.mx.upcmail.net [84.116.36.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C7C80680529 for ; Fri, 17 Dec 2021 23:52:56 +0200 (EET) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1myL9s-007QX4-0I for ffmpeg-devel@ffmpeg.org; Fri, 17 Dec 2021 22:52:56 +0100 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id yL8umhDvvSgGFyL8umiq3N; Fri, 17 Dec 2021 22:51:56 +0100 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=f8Q2+96M c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=KrFz3_f-UZ3I1SuuC50A:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Fri, 17 Dec 2021 22:51:54 +0100 Message-Id: <20211217215155.19805-3-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211217215155.19805-1-michael@niedermayer.cc> References: <20211217215155.19805-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfMAoYyTrjuUg7QHZnG9okvJUHGZLH2I1zraPZsKMnDCTFwTa4dg4qsVu2oZdPzjaPfOCL9Z6UcviVoSB8SmK+F+hK54Fd/yt9Hedh5bqFEmuESuHcz1T 5JzUbxFetGrhAfo6f/DY7eLw7e2h3E/2ZbYQ17OiPwnIzo2hs5hxWSmp Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/tiff: Pass max_pixels to mjpeg context X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9YXN9uCqQbZ4 Signed-off-by: Michael Niedermayer --- libavcodec/tiff.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 870e0666aa3..9af602eef70 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -2155,6 +2155,7 @@ static av_cold int tiff_init(AVCodecContext *avctx) s->avctx_mjpeg->flags2 = avctx->flags2; s->avctx_mjpeg->dct_algo = avctx->dct_algo; s->avctx_mjpeg->idct_algo = avctx->idct_algo; + s->avctx_mjpeg->max_pixels = avctx->max_pixels; ret = avcodec_open2(s->avctx_mjpeg, codec, NULL); if (ret < 0) { return ret; From patchwork Fri Dec 17 21:51:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 32697 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1993397iog; Fri, 17 Dec 2021 13:53:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJx6mlQOFfcCXRxaO78Y6xfVtguP/SvSDAuc12FvBwK9CUsDS+mXgXbdAYiMhaaJtLAQiAxp X-Received: by 2002:a17:906:82c4:: with SMTP id a4mr2924619ejy.23.1639777995352; Fri, 17 Dec 2021 13:53:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639777995; cv=none; d=google.com; s=arc-20160816; b=eZYtd9QW6PyoBgPol+Qf57rqKMGMY4rNF5NNG9T72Nak2yoqkHfuw/hHhjqGXjKBEA dLsHb3wMGgAKsItGVP2EJC2rlX49IS24a4bHvmYqGqy8cnKc2kws3RDk/8ZUZVlXD7NY UFE6+crnfv2Q+0zNaDBi7fCLSZcZO6K8eL5z9BT/Cp/tmQcXmZ8HFKk3OSU2ohGsp0NN mvZnvaSZYGz/6vFPo4xyAltRpZiRHgoJ6ML0Qyg24EY5okeyPdvGa4a9pH6o68k3+5gW vYn219aBgTzZuwlFO/rsZ5nyXRMZgc0Kw7CqXqyYeKHqLlJ4gU7wJBPkei+F9PaGdtQr 8HAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=A8c1jRUVVTsiHH7wk3/PQOzLh8XM1aV7x/WDFIK/2ac=; b=KCUkCoobG3nBPqjLGGzohYGJTtRDDcONT0sP/ClyPQ9lD/lto68ia1dZRFXa8Udo+8 fZbTHbRIMGAO56wxsTY5zFAiZa9DOvVTayQleKpR2WNxfx0lJkTyd8HgOPPWo70YTRRN ndc5V1ZMVdvP+Ulfs+3s3FkiG3SHgfUBFTrYFxO5rzef6i72StJAQtwrIBOwf1oUbQRQ 1F75E4dtcVjCOfkEDew4SUcrZNECL1F5r6baCVcdebIbul4W+kWDq0m+G7+H4LrXPeuN KhcmX3jQI7wQ66uAUeyB37+f7OV2tfQ07B9AGy1qzAN7dTSjgp1djUBuexomYmzX46BM bxrg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v13si1376527edq.6.2021.12.17.13.53.15; Fri, 17 Dec 2021 13:53:15 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AFD1768AEBA; Fri, 17 Dec 2021 23:53:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe02-2.mx.upcmail.net (vie01a-dmta-pe02-2.mx.upcmail.net [62.179.121.158]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C963268AE80 for ; Fri, 17 Dec 2021 23:52:56 +0200 (EET) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe02.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1myL9s-00Bdj8-0H for ffmpeg-devel@ffmpeg.org; Fri, 17 Dec 2021 22:52:56 +0100 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id yL8umhDwgSgGFyL8umiq3c; Fri, 17 Dec 2021 22:51:56 +0100 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=f8Q2+96M c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=NEAV23lmAAAA:8 a=G6b7F1W_FE-z611kPGIA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Fri, 17 Dec 2021 22:51:55 +0100 Message-Id: <20211217215155.19805-4-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211217215155.19805-1-michael@niedermayer.cc> References: <20211217215155.19805-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfMAoYyTrjuUg7QHZnG9okvJUHGZLH2I1zraPZsKMnDCTFwTa4dg4qsVu2oZdPzjaPfOCL9Z6UcviVoSB8SmK+F+hK54Fd/yt9Hedh5bqFEmuESuHcz1T 5JzUbxFetGrhAfo6f/DY7eLw7e2h3E/2ZbYQ17OiPwnIzo2hs5hxWSmp Subject: [FFmpeg-devel] [PATCH 4/4] avcodec/tiff: Use ff_set_dimensions() for setting up mjpeg context dimensions X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ij6IOsv/ekP7 Fixes: OOM Fixes: 42263/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5653333619113984 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/tiff.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 9af602eef70..60773d59ed0 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -724,13 +724,14 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, static int dng_decode_strip(AVCodecContext *avctx, AVFrame *frame) { TiffContext *s = avctx->priv_data; + int ret = ff_set_dimensions(s->avctx_mjpeg, s->width, s->height); + + if (ret < 0) + return ret; s->jpgframe->width = s->width; s->jpgframe->height = s->height; - s->avctx_mjpeg->width = s->width; - s->avctx_mjpeg->height = s->height; - return dng_decode_jpeg(avctx, frame, s->stripsize, 0, 0, s->width, s->height); } @@ -971,14 +972,14 @@ static int dng_decode_tiles(AVCodecContext *avctx, AVFrame *frame, int has_width_leftover, has_height_leftover; int tile_x = 0, tile_y = 0; int pos_x = 0, pos_y = 0; - int ret; + int ret = ff_set_dimensions(s->avctx_mjpeg, s->tile_width, s->tile_length); + + if (ret < 0) + return ret; s->jpgframe->width = s->tile_width; s->jpgframe->height = s->tile_length; - s->avctx_mjpeg->width = s->tile_width; - s->avctx_mjpeg->height = s->tile_length; - has_width_leftover = (s->width % s->tile_width != 0); has_height_leftover = (s->height % s->tile_length != 0);