From patchwork Mon Jul 4 15:24:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36653 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp2900284pzh; Mon, 4 Jul 2022 08:24:57 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uXWde8J7ciaZiy2Vkl9HJLV6GluFrMkFZVXuxjB+sQB2chYrCQBfDlqngy5a5G2pt0FyVc X-Received: by 2002:a17:906:53ca:b0:6fe:ae32:e01e with SMTP id p10-20020a17090653ca00b006feae32e01emr28326327ejo.455.1656948296934; Mon, 04 Jul 2022 08:24:56 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gt17-20020a1709072d9100b007263ea0d796si9647458ejc.238.2022.07.04.08.24.56; Mon, 04 Jul 2022 08:24:56 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=NHRYEPru; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9F9D468B909; Mon, 4 Jul 2022 18:24:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.92.74.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E0BE468B85D for ; Mon, 4 Jul 2022 18:24:45 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N+p0jleFHT/8ZxmcI83zyg0ybL6SnC+E8GIZcqRW1FMR3DQzKfX1uxWU+C1+rfJuyRWZEkDYLz+LIQfbFup+6Lh464lqZESB8rWYzjXZB0Y2fDtcaZixBesCQlqhVBlMgpKqiaVRFYZUeC3fa0QFD1iOQY1GnROgihQkW0+Aa/VLfbd6E+VMYgec2np7HZTR1rji4Rega+sZ3fy0z3usuiaePQbDPFMa4h2Er26abqQai5ZvycXLP+zyyQTLelygu/5+fJ8pQjknQpudy04N/tafZNQ4Im4TXnpqvuQ+MLTuiqe2WWuwDZStSg7fafOnISmE2h8u/JO6kOTGjslEsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DaNcugLT9RN6WavhNvNTBFIbdIoiDhHFg8PUBLS2NBI=; b=fy7QdUtNv4+2MUYPdbGPkarBi2pKdxsLzWdBvU7hBwHGcHn9ZduiYM5dosyzl4rSxt4rEusVYuRJQtbCzn+sT/SwuC2XxTdLnno8xA0DWSFUhTFLi+5oCfQ3F0PmplDKe8zVJcF1sHYm7kG/moIoYby/A4e0FUr4kgrCc6jQWpp8V+ewc1pxkW+kiEADvNtn6iVHcNEFy/aGsZSxlDFpMuRqtbsML3SVu2oeneMRhiiWY96lNKss91T7OTlA2IZXshyYyfOag4bWZ6U50qLWifi/OjEzGVtcfHCfWb6GSJoKRTKFDGgkZPTirO7fZv7RI2CSMnMBYxwXkaO5KigZ7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DaNcugLT9RN6WavhNvNTBFIbdIoiDhHFg8PUBLS2NBI=; b=NHRYEPru69cYv4DLybG2vIh5FYB2DpmwmWCni48DB3/ubEknA+n92RO4tVzie7tPgsyvlVROC/wcB3k7X4M8DHE7Rc6Gmhy7aAAGaSJWaVqEAwwa+Srg+PLt3yWAbTD4Ue3llbgeK9DpwbYl3scigEI7L0jDlOnqAKMBsLLLFCQG198fuIxj1jgv07t3tAmxFzFkSiz+Pkge/72mVZvfUB4TEOZFa8aa7dDgL0YneudmtRZCkh/QSReHGUBQPIXugirBWcDbagjLEO9m7wTr3/cns9RBw7lUFgzx/j3i6YaK/q8ROEXYMnKP42WHOwpl8UQcNvUGGlg+fs5WEjr8HQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PAXPR01MB8566.eurprd01.prod.exchangelabs.com (2603:10a6:102:22d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:24:44 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 15:24:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Jul 2022 17:24:32 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [sZGh/COq+oD2Sdf+hD9QyqcYcNWxhq8m] X-ClientProxiedBy: AM6PR04CA0006.eurprd04.prod.outlook.com (2603:10a6:20b:92::19) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220704152436.1106604-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e2069f32-c92f-49c5-ba55-08da5dd1528a X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEvDnTigkO2HP70aBMK1Ta/wlUpGyBg3Zgm23c7DEePGsSBzb7NkiowOhu/w38fO51dkEhwohnm0GbumwC6Bt0G6XzSydRG+t8G8gwjJ5FjQTsUzTkseS1oMIL1fGr12I5HISa+9DN/cUV0clhdIvW9smfNUX2p9lzQSDFmBVGrtLoabPjju6wWrUp+wfahnpmRoUtMu26sq4/1E6njwDoD3b59TAVjbRRPOH56s8rCFv17Bu4Vtww4oaG6uAMzrgwG3/8CIjuns/zTo24+jfw22+tZ4UUR5s8A3FL/UwKoliFT+OpvG0YL4HHyzL2lGy+wfp+dlu57aZKC3tICZOB1sSJyxm8pTp5/7Y/wWKoUUnkvIniXBu41qoajR/1aCpFKTGvvEXsPYEgSQuDVymls2SnUbGgbR349QHRh0rWI0V7JtXhKk0PSB521E79Jo5xnlwXFL/5luRiSXQacUvCCZhMXZdqkdIUeJpUqMH8Znx2X8qcr33hVVC9J3MwiwJwZJ3yqPFm9/gEBxb0wmrZi2eKS7YSj7Qmswicq4Q0c553kEcZy9PaHJs3qi3KDG7JhxKjMqvFqJzkmX+M3yBufT4zPu8JdYGvdjclDFMenEhDymKklR7Vi+H5EWS7MgCqf1BZ0O1NosFU6nYCt3826gGCqswPxPR8UCnaw+/tfdoMgr16YfPpvg9sXLgUv/XK5rpSDlXJsnZiiQS5uiLNO4PJvNnQkPRaH+CCJDv6PBuEJjREaYHcvP67Nacrb6ADPEIl+BaqszPtWPfJFIKF8J X-MS-TrafficTypeDiagnostic: PAXPR01MB8566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NWq9Tzdof/D7Ldtnh/XZdeauA2zMxcnLBo02DCMPpxhHNr7d0kxJdsx0qR5eHKrzvNasDdYCThmNWTuucJBq3VyglfEITRaB1zg4Z1WjK6Wa01KNpsgQdjn68li25KEDVu6YcVechC/Y1YN10bBk4gQZ9YtrzqWH8Md39x0WZY77ucNnd+4x9JEbaieANwCtUAfYeHIheFeKG4lJ08vaq9mSyjICZi0/yhCYMrJktn+wa47nVI3yvT2LrZye/jPA/LfGakn4ftKlMFaXMIxenzI+rWEaWP0Nwnlh87Ay1y7qexdqwUmn/j3n6PRuegBHOaLom+UnjJIPPXM3B6sKF6mq74i+VQG9Z8vp72m36tdQtGTr/nkItLPc46nH423J1cgGvzXLLZ9NhHp2IckCz/OARqycJHa+CozzSG4YaZB6j79qbcTLfcGG8X+xP7qhIbJzVHijY2HBANeOZM+BrZT7nsVvHILnZfjb/gQ+mxK1xFt7SECi5ssTaOh8rO9eqSp3qKPdofqzUrpoFzmiSXVGQL/iAi/PMZoq9JKc6Xb07y3CzjWMBASkhStnO1UAFeglfBqJnWasirCXCGzC+a+efBRVx2fCQON/SyhZSkk2qJDy8jgsVs/fDN75pb32a0A2Xxvn8ZnfYuQwYs61aQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Yzgv0yVzpDH3cFHhseneY11YWq4Qb7JiHGyBZuEtgRc48TOpSUcRNwxJ3KXo2WkvtfyxQbuR3GWsAkZzRqhBrB9UTWEGoyIy7D+PfSTrYuBi9lZ4RNQKbuNm9QCDx2DvO++PW5B/PfLMICO6VxgYdJdjpXJgxEngrWd+n/+OgLCjPrf5BcIt0vQ2mzkPzvLDUwvl28qyWuNiito4rgYVJBKuMJuDUQavIgFxXMSG9vkjGdF8r/LnfAZG7trx3bRFYEe1/Mx2/HEzWGdTL4jAHLSsMs18LLuBXbPvoek7qsk5tBqBYJ9dT3K1bEe4kDM5LObyC1I0QWcCL6m7BOAl4nQK7IcVCzj7aFE9hcybdxNxlG3SyErxrVlP9CCwfcPD8DG83Xz1Lg+hclnbYBf6omCmjcOB2x7x2Mpq6V0fDp4aVe32SB7td3Php2qJNVaeYuDKqzwn5LgrtuYpvKFhoykrn0vm9zXVkdnVpSuRC5W3Z35WJmtS0WQdRD1nm1X3kXmmiO697XdcxPYzixR9+VU5RaWOYGWSiRBzHJ+uDNbPFsSozOfp9e/uszXsJ1+zS0EnKk6JsSD39+gT25EMzTk1cqebObxrnCfrtg62VMsc3DP8hrPkNJy3WMjtTXNY7eADtHmLeQm4nrFfoxNLdMnKcf9BEoknOkvSpJkDva6+iJyFPVg5hJbW1vrwVpM6F6+zVGpGPN7zZ1+DOJx9B0Zv0UdHV08h2DGXuNpVNF7VJC+7uYLIhFdsIMJcUHF2+h5QjAqZvR8F2BaDi7c4IfbMSS3QeAskMv3yaqhLyvtA3CP87dhjmLHGhTESmX4RCGdKOxaLcmxEh+/XY/Tmw6DKcrjYd7Ce5w0fA+p+3HvXXMdxy+Arl1+mqn4wglRd2Tw7ySBQqjdkcSeAaHR2HHDbXZhV/1882xAsXG2EHpK/9foE/lrF33TDnsn5M11NXvTlLdA9joBdkMMflv1lZVrtCPFvltq6xRF4hSj5xogDsypcb1cji2TQiLsYEnOt/gAwlPSbw0+keczmS7pZch0H1IfD39XKe5XeBRcdGMKAohXXRV0+n3rqLWGEUAq04VqgMMtLA5tvcWEhFMuTCtCXPPfzqA60GueB6Wm2tSf3O1f/vx3yOOwSuhv1Bl7VZe0VoWskXb6V4w09pX9smE7K57dXE8EnDlGylwSk/wqEuRGBLcb4LWBfnQJL/vxVKAdNh0++Rc0VoLH7ThDEOr3R+q6lC+/OVeeMC3g3IVMvg3Rrsk+Lq/xNFjra6upkKI2xG5GfizPeKEfk6CUSkXrvMg+fJjRF/DvDJ+Zv8WY= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2069f32-c92f-49c5-ba55-08da5dd1528a X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:24:44.4551 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR01MB8566 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/apng: Add APNG_FCTL_CHUNK_SIZE define 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: dyPpOu8y0umv Also use it where appropriate. Signed-off-by: Andreas Rheinhardt --- libavcodec/apng.h | 3 +++ libavcodec/pngdec.c | 2 +- libavcodec/pngenc.c | 6 +++--- libavformat/apngdec.c | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libavcodec/apng.h b/libavcodec/apng.h index 41249e0df0..abd8795334 100644 --- a/libavcodec/apng.h +++ b/libavcodec/apng.h @@ -38,4 +38,7 @@ enum { APNG_BLEND_OP_OVER = 1, }; +/* Only the payload data, not including length, fourcc and CRC-32. */ +#define APNG_FCTL_CHUNK_SIZE 26 + #endif /* AVCODEC_APNG_H */ diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 6b44af59f2..87b0c639e3 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -972,7 +972,7 @@ static int decode_fctl_chunk(AVCodecContext *avctx, PNGDecContext *s, uint32_t sequence_number; int cur_w, cur_h, x_offset, y_offset, dispose_op, blend_op; - if (bytestream2_get_bytes_left(gb) != 26) + if (bytestream2_get_bytes_left(gb) != APNG_FCTL_CHUNK_SIZE) return AVERROR_INVALIDDATA; if (!(s->hdr_state & PNG_IHDR)) { diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index d79b4e3895..93463dd341 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -988,7 +988,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, // to have the image data write to the correct place in the buffer fctl_chunk.sequence_number = s->sequence_number; ++s->sequence_number; - s->bytestream += 26 + 12; + s->bytestream += APNG_FCTL_CHUNK_SIZE + 12; ret = apng_encode_frame(avctx, pict, &fctl_chunk, &s->last_frame_fctl); if (ret < 0) @@ -1002,7 +1002,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, if (s->last_frame) { uint8_t* last_fctl_chunk_start = pkt->data; - uint8_t buf[26]; + uint8_t buf[APNG_FCTL_CHUNK_SIZE]; if (!s->extra_data_updated) { uint8_t *side_data = av_packet_new_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, s->extra_data_size); if (!side_data) @@ -1020,7 +1020,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, AV_WB16(buf + 22, s->last_frame_fctl.delay_den); buf[24] = s->last_frame_fctl.dispose_op; buf[25] = s->last_frame_fctl.blend_op; - png_write_chunk(&last_fctl_chunk_start, MKTAG('f', 'c', 'T', 'L'), buf, 26); + png_write_chunk(&last_fctl_chunk_start, MKTAG('f', 'c', 'T', 'L'), buf, sizeof(buf)); *got_packet = 1; } diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c index e84f74e9d0..47cdbfcbfb 100644 --- a/libavformat/apngdec.c +++ b/libavformat/apngdec.c @@ -222,7 +222,7 @@ static int apng_read_header(AVFormatContext *s) ctx->num_frames, ctx->num_play); break; case MKTAG('f', 'c', 'T', 'L'): - if (!acTL_found || len != 26) { + if (!acTL_found || len != APNG_FCTL_CHUNK_SIZE) { return AVERROR_INVALIDDATA; } if ((ret = avio_seek(pb, -8, SEEK_CUR)) < 0) @@ -336,7 +336,7 @@ static int apng_read_packet(AVFormatContext *s, AVPacket *pkt) switch (tag) { case MKTAG('f', 'c', 'T', 'L'): - if (len != 26) + if (len != APNG_FCTL_CHUNK_SIZE) return AVERROR_INVALIDDATA; if ((ret = decode_fctl_chunk(s, ctx, pkt)) < 0) From patchwork Mon Jul 4 15:25:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36654 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp2900678pzh; Mon, 4 Jul 2022 08:25:40 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vjTKrREDy6haYLSLIefzbGkPT4Mdnan6FNsoawi2x2uf7Yf9epCm3OXeDQziPmFRsin3Kp X-Received: by 2002:a05:6402:51d1:b0:437:a22c:60da with SMTP id r17-20020a05640251d100b00437a22c60damr40084947edd.28.1656948339845; Mon, 04 Jul 2022 08:25:39 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qw5-20020a1709066a0500b00722e8821ff6si23286015ejc.514.2022.07.04.08.25.39; Mon, 04 Jul 2022 08:25:39 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=fmPc5vgt; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A17CC68B928; Mon, 4 Jul 2022 18:25:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2061.outbound.protection.outlook.com [40.92.90.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B230F68B89D for ; Mon, 4 Jul 2022 18:25:30 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GDjWFLKq0hxWz+pacjluFZ77SEsRPJRdpFVegxTa1pRG/NtNCYCzBgyGN+pl5QMzgB5w3s2+HwaCU04sCzSC8EWlmUsRtlf3/QIK50h/bAHapsNhooWgG6VqT6In6MPoBbTM5erptiG5BJrF/NK9/c2K/cc23nU6detFbbUOrijPupLMzLnHTKFpk6MOEAyopuQSyDlxvu7VVw1ecx2DhTJyRzX68zG3MyKsFW/qipXcUbgczYfNKAvquAEEzyIyO5FaLl5oErRSB5kMQavNbou5Xf7Yd1upJ9LdjueCUDxIQYYc8sswi9Vi6iqPgiDEIGNaswhJDTW06Dlb6izswA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Iems8uhJEOTfgyrQLWgUsTsDXNhYvKRM9Q9+dD10eUQ=; b=EZei+ztU/kAxytMoNDEShm/XCUOmixvCrMcmoHsMrElQUNjLLpoYSPYAVfQOetTvwc8mgJHe/QVlrx6veWuOtviVBuBR66wweK8qo4gBMME/tLJsTvuWbngJhQbDM8VoqXMuFC1P4MTwILIDYcbVRSYpPt+eCoscSYqNqqbbAzjr0rfspiwUABAMuDEEdx7J1zBATU1N4yoLqH2USgV4L+o4e/4jEaF12WFd6krIejKKNNMgDpS61iXP5PVqGh1fRF96IB78UKfoLZVOuIygEJakXqv/0Mn7p8YTMuVt/6e3zSkdZWnE9mhPfummZbvT9/7hQkZXk0fvaZ4p5910jw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Iems8uhJEOTfgyrQLWgUsTsDXNhYvKRM9Q9+dD10eUQ=; b=fmPc5vgtX/27SCdD03ypNLyOJcIr6SHANViv39zyshEh4uJTVuER9XiOBwcH1iDcwTyM2cUKWdGAi1hTC1U8i5bXCl/rzAst9BqM34AGpq8obocMyay3xSW3hqbdi6UdixBNUfPEJOcfrOi18chtg53EVGDY5teHytjaC7FCg8Q5Vr6NXKTt/TznFxTsbjVJK/p8Zd6Pya7KIkRclyOyjBaqymj9fxLeYugp29aN/x3GQPJp9zFAwO18N0cLEpLEMzEmAv3djnv8NDiDT7oBDrfsp6/4+kBg00DQtLlQ2g4Fdlu0bnx3ZF69/FGpc1Wt7LJ1L4ZWwIIx8T1+5nEM+Q== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PAXPR01MB8566.eurprd01.prod.exchangelabs.com (2603:10a6:102:22d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:25:28 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 15:25:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Jul 2022 17:25:17 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [kOFTn7dTBvWO1ZtJaZg7XQ1SBioLIhE+] X-ClientProxiedBy: AS9P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::22) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220704152520.1106645-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f19f27cc-2282-4c04-b05c-08da5dd16cd7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNUxDAI+Tg+jRSc79YAuptYJphSvOU69MyaXYC8wXq3+5PDVv95amAFyYseb6hl9S2466snpMognldFYO3Q4JTznoXlDAKv2ng3YTO08kDGr0eXaB14L7YobPIXWclksjngvunXGxuXkQjm90bUhBSkBws6868xFU3dYIj4FON5u6OPy7iHz8+26juZxl9Hf5LlxGlSV86jJ6MSQzwUzhwCntfD5r62zJx6ft7kK4RlL2mNV22DFcTNwll5BK9FS5LxPs/YPiMoIDLHaO313vEyOSeLL6Jo84vo/FVp9jx25bpN8rFwkfvthLs8b1mYwsiqmqHEeo+DcteLqkaI15Lgxl665fV2AgoonywAt58YZZlEbwZquAEvRpuJetIxv9/OQtr1rWtI3x3eQ+WAIjnh+VgBxoLwAhDv+XPaAflKNCi5xsJbvX7UGO9yywayRWBdB+8mtjQ9odQXIdDfl2/+x7jDkz9SXa6SqHoVNH6h/QjbVLtvorYSIjs21+zkkU+qKcBAI9t2w4CDvsZnLWc+d8/92PhEnETss91q1w7XCmmOQXRpocYr5vaYhTinFBDNNo61cHp6co59PjUALq2QR7tPHQaS5JZ+mpeL1sOXvHhgsXArsh9dIxG4IMoXgE9CGHFkguXHXEfFCFKdKf2tmLpLt1yWbok3iyS8PDSb3CxEE2/kKiJG9YWtvDBOAfI8kqb4Q46cQKxdBnlSlmFOplmwEqqE6JiY= X-MS-TrafficTypeDiagnostic: PAXPR01MB8566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: omIORhSOW7i/oAP1vllgV/299TXfg3QckhhrO6eADQUOj0D6X400UFIyAkmcXkdxc8X2Uh3UwoQ6wgGXUnEf6vW/3LBK24jZINlJPsfzbV/pwXMIJysMRnVJc2LdOMhfIwd7cmc5wc1Gp/xsdOVaFDWSwoFO+NyuGpW7TxDmP7puOPrmlNv0wX3aLcJbxLnq+Aac8As5p43RxK6JyJTGfwU6ke5mtrpDaIQ77WyWqSCUgqvXMuRGM2GnZL2WAb/qoULxyU9TnJTYZMe3QoJ5aKqaLJoy1OQ20mjXN5l/2kJrT67l99h7FC9dIBDqkq+gflqqsq+oLgVfQNukbSqZSGmNtp1Xr6r/qsOyIOm4LDRBWTigIc1r5HST6jWpp6FPuQu8zX3S4WzcZLJkS5CrqeVgbo/p2us8Lkxz0T21J6cP346RZ/pku4+21fi0qeb7R+RMcr+5WA2v+TwrCYC1uPn21HlM/zLsaw5OUEvvTuMiV5udCEUEczDrNcTt+qAT2Frvk61ZwiMIsstcnuvSfq6CGFF90E9bpp3De6vunohCfjBtugHP4ZCcpYhTpp0curot6KAIakzg2h67jT/Vp4jO+oS1knB/n4QuwLuar4mhlSX8IS7DKU6Dww5FNisJrB/d1FsceMpAmDGvKImMkg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: B+vt25TJMx1XaaIHbUc7xbo6j257aVguKemX67wCCwVfiqhaDTLLanp6vRr/b9MJV6DolpL86NdZ4WZQapTQ2aeL5LGe3j4aa1+huwT4iMFLtkELUl9HVh7RUDRDA9gcXVs4ZSZ77tz7bDC9Eg4eJR5/1/SJcvYIitrTble2XnD5O/PQ3NKqjrAJfjDBXoKVnY04sEM9jO7oCwwk6apN63FhsYbmC0+ApBhcYJTys5c0p21G02SC9FhtY6CLw054tJHmN0QQC1+xHu1E7qUv5hdT6rhDVzNeyM4qiLI5OpRBu0gyOc8NqS3MQ83McJ8XzaTu/OTX8cdGsGiPrAEHaZgawqGuhuR21IhtN0972kcMA0jgLj5jptoiV7IojXD4DWyZvHCfA5lTGlALFQc04oH1GsvsyTR4pDzUqI5tRBQA8I5FEtFjm/0atGgaEWLvCJ1p1locL/BbSS6L9Qr6+7sqdnLhP11kzF/CvkO/kh/m43Un48cYRMVpV/5KYX52q3WbrQQYj+G9w6LBL45zqGtGvoDtknuL57j3ASusjiBDsWNpsTdHCpDag3NEWn2axmLwgj9VjtGVQXmOFJFBB4FhQFCBQ5tqzgGyWXkLZ1wdFG/YxROz4QdfsSlQMO4JkVbWcBk9CFuUhugprhfAw9BlILnacfq5KTzNofLJvGFP8hsmmiNPGsP+arImRbeMPD7R0t2+G5O2UQN6gGYWxS09T1JQ7/WkayzmKRFnJj8ayt6sv0IwQwC7YEG2yC3+DP5NfmLwc4jG8uAoM3xJvilMXSaVV8pFzl0cySOy+OZ7L2gKZRL6WjpeUiBEPQ/PQLDg+aasdyc+GykY75J41/gb6HGRW6VVPSLBpsXdYHI+lnmfaWq60YtdZtv2YvCZ+NN5p7pznoRoVuBLxIVPklGBDMyko/vWw5jUuDZovUhfdBAS6tXUM7uJOTZ9Zb+/tXWTmYyZd8G9K1Ms6XaI6Hw68zu9MVYioY3cwcapBNLJmq0YGdyB9VWDsqNPKsQDKrUFYzoBtKN5cs7ivAikADE7qn8HY7hokJrvi2htYHRXMtTEtpeKeSt5mefqQVJxPJUXO2KJj/eswCr1Q6IH/8WJ/IBHdrBWjBrpK3dL8icJkvcw6UWRIYRtTLfndCvauRmoDcn/0RLXFW5LoNvI5KYO9u4ituYGdGsKZ6LBnldUHQexb0k6OQZeldBp4D3EqXDdYN0m3LIlwjkkwCBOP55Js3fH4A+U6DSc3Q7VU2XRbqSEov2kCW9alS2QzM6nPWoWD04caQ3tVzi0hhETN60ZPlhXFENNIapmgcXs4XM= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f19f27cc-2282-4c04-b05c-08da5dd16cd7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:25:28.5487 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR01MB8566 Subject: [FFmpeg-devel] [PATCH 2/5] avformat/apngenc: Check for incomplete chunks 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: HpPK/ZB721gI Signed-off-by: Andreas Rheinhardt --- libavformat/apngenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/apngenc.c b/libavformat/apngenc.c index 88d4a41462..7443c77504 100644 --- a/libavformat/apngenc.c +++ b/libavformat/apngenc.c @@ -50,7 +50,7 @@ typedef struct APNGMuxContext { static uint8_t *apng_find_chunk(uint32_t tag, uint8_t *buf, size_t length) { size_t b; - for (b = 0; b < length; b += AV_RB32(buf + b) + 12) + for (b = 0; AV_RB32(buf + b) + 12ULL <= length - b; b += AV_RB32(buf + b) + 12ULL) if (AV_RB32(&buf[b + 4]) == tag) return &buf[b]; return NULL; From patchwork Mon Jul 4 15:25:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36655 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp2900748pzh; Mon, 4 Jul 2022 08:25:47 -0700 (PDT) X-Google-Smtp-Source: AGRyM1szTn7qXH7Dvg1x5b2SZ3kCZFZUoxTAn4w9d3NR7MvU38a1zM9UvcYdyYt2VwVwszt2gpaU X-Received: by 2002:a05:6402:354d:b0:435:93f9:fc0b with SMTP id f13-20020a056402354d00b0043593f9fc0bmr38828948edd.288.1656948347322; Mon, 04 Jul 2022 08:25:47 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y1-20020a056402358100b004359f471717si12227042edc.0.2022.07.04.08.25.46; Mon, 04 Jul 2022 08:25:47 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=HlKQdhsh; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8EF4668B935; Mon, 4 Jul 2022 18:25:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2061.outbound.protection.outlook.com [40.92.90.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CC18368B917 for ; Mon, 4 Jul 2022 18:25:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S8+OT+/sJN+ZoUubwJl7EiAaDeYLO/Zwz0ahvN7R+PjbjblMIrypf/3xWfw8N51uJULooNva/LrIkvfmEAJ1zDcfBkYgQRYG07nikQEmuUffA+yimFGHBKax88O9u6GKnlEZFbwIwho4sZM3V4RJDwT/opfFVrFCfiofM4XNOZREXz8Nt2i08XJxpO0bHqV2EhB81Q1zBJLcdBlwxRYuhJ4LhiVxtKQdIOUtGXpUp6toXC4YKD9Kbg/pc5xBPAtxUJBk0w812jTOHVzK7BUwa4ExAO9IWLYPTBDXwaElg3aKnr7qFl1l0QpF3K0gHtqFgvk1m4/dgiiItB1K3qCHoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ogUGnk/3qx61E5kde2AxLyY3HZIPSl6W3MfzEwUampM=; b=O8Jm9qwCIEeSLvdgC6FgLNmfDWI+i5o48vvgtrlFZe4qAlEye/JnA/WeXMEC70od83Z+d166CZHwqad8buk/AhvjyXz7IfbGYBOqlwsovVzzT41CBX1Y2WJ2Z9fzfcllm7iSidUBUv/Ed4F+JV9VciYQB6A8pq+OFvqEKRh2Ecp1VMeAjoIGsPvKeKMzKuVcTaA0ovgwWvJ0NCKyFSzohda3srKUyV1nQ5/Dvy91ccIPUtefa3Jip46i6UqDwGMh2ai1ftRyeZRAXTK55ZkJl1/9HmwXSmzBue36y1XfcNN9n9p0oyGvH2EekUESiuTAJUEWVLrOiF8sGetb05OCdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ogUGnk/3qx61E5kde2AxLyY3HZIPSl6W3MfzEwUampM=; b=HlKQdhsh4iNWfXcIc7fPQ32qvC06SRRa2fIwp5kFLSaTQ4mnWwfDnzGU1H72On6sHrLKGb9rZiNnso3QvHBdEJFzpJfouhCP1A1qdGsiCkCT8SfFauberL2qMeWO3RvS166MHGGrlfojRhPCgvgFu8PlVlAgvzJ+oW4kJ2X0jiJbTe0SFMK2ym/LklIHxrGY6VZfAHzW35qGLVrehiUjplYUcKZ6TLI+RIIVM268aMcSJy35lfDDR67RW1lkAMjvYxbb7pxN6Ch1P51y8Wb9nkaDMzDDHFt2qoqM6hTG25oI7E42ySLfUMO9r7IdB9nBsvRZ0LLf0MX/4P72lQThoA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PAXPR01MB8566.eurprd01.prod.exchangelabs.com (2603:10a6:102:22d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:25:29 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 15:25:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Jul 2022 17:25:18 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [bSVOtzY7JpXqXykcqkxqCtQJ8QzBtJHV] X-ClientProxiedBy: AS9P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::22) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220704152520.1106645-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e58cbe4-9181-406b-4296-08da5dd16db1 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSUs0MpKjnPJCEF4AMFZodnTMwQqP31dFuhX2CQAblAb9MoX39eIqt29SSRraJU+JOSipw/NBdTxE7bIulwJUxsrRQTyL2mUc6oyLZ07gWyNUBu5oLVNIg106Nr4CVTPh8rWsLBB+nmVBiPm2nUKNtwsAMdevG7mdHcswH2yiWjM1g6Mby0RirFb6Jl8XdEKT3/NjZrQQ1YRHokMvz+wSbfGPaosixEH1xhS5T6qYV/dTl45apXkj5Sqp1TpZRHHCGZmmZOh0Wdg7D+AmYMIYPV5oDhbmDzv1HX9V7DdLCnYXjI3RDnMpAFXyP3zaCEnvMEZOLTpdl9DHc+ipQnfaLGvLPJCkqDsesCbR3EkLjj1WQzn6LbdYqMJR33UZYGU5wD3J+HVn92ksqQG8CifMsWchwoKGYBe+idyucAKamJypF8Zz7OrtAN64zGBYyfT8xspOeWKRwG48s9Yn8w7l1MzrmePnVoIHCMXe5pn0f/P5hHOiavbyYz7ZM2yLv+rWEtBYIDjJ/yBEtGwCsTrz/ejFCDbPxCUAg4JJDIocBFX8kZBmSwiUBgVe7hALqrfVbSowf92+dM03qP1b4QQVkkQvOXveRk5yaE5w6mK7qDHCDllz0vaJ9aWR+AtDVnyFjskKxvkqvGF4OOeB36zH9huRHKyZzTzT7wBQxoVadaOi8OP2/BXmfpUyQhuNfzHNsO8Ubi9W9by368BoBSdexvl6d1rCZk8uxEUnbE3XhSu1mcDjb0kcBsplD5f8U5D6s= X-MS-TrafficTypeDiagnostic: PAXPR01MB8566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: itqW23/sBbycxQS6eIQZkCwzB2VTJyEnU+fLn8CrkcCVY1iFYjg7qRen0++tFL5YgOR9JHpwV9KeSUjhFdb1zbJAX4FUkdGxbYlrcyRIDZ+V7OWZ8WKdRS1q1OnsuTD8B6PcxfzyWMiiVsx0zY2A8GNtqxSz5LS5X/n/iReRrHqIn6Kd87lAMUhePrYh7cWmlI8teutwVLPvAA9NclcSAl/vrHWiBODc75TbV8FtFE3OQzoTv0m471PJQmEqwveCTtbjZMlKzWpf4LRFHnZJDiqadicTlVHJ1BPf0ysmtlA1fmWyjBn4ypboqRq8LH9R2/9KdMG5CV0VZRJGUOF9OqDhkWkZIm/+XRig8rckjc36f3E+CzX+pbAkMyVVoAmwYWQQF3uDUHCKcFCTVF1A8Bq2SMrfiMkWEyg6KIt7ONCcq/egNO65ciRvalmj7jX72bfJiPHq13NStAfn9nP+hjlmwrij3eWAymp+7VAqY7aARwWcov1Bt+0XlL8+cbOzrHYREMAL+zhvw6d17Lxuv3JssoN9pyQoZCGfAseuPcvVL0cgsSLfFqewXaTXLAIjyifzM+qWNM9Yb5P5YyShBTHVXkDluLwEH3uLixml4ilU3DNw8UC9VnypUHaxMXo7aQTOppSaEuKZlfjyJh3jCQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IFGqrcUlDhUlHgs+IKAnN0hBjhgIK6AStfiU4cNTVGHGn3nxaMwKBd1cKqjeTptOSRCSqxinEh2JE2NwgH1EI/pWXiR4dSkfouLAQ4RO4iNlhKXLetcZYu4Yag3vTzWHVU01U4IiZzpYwN8HWo3ogwirafs9pzf6V0azoL3YWphiP2ObTKlDtnTjZWYKY4a+WtQQTvJHRZGC2exDNijdCjssfeo+75UBOCXk/EZJ26JtUAlOTylm3VWre1AaxswTCp9VZO18DbMGzva+iEtHMlZc1wFPpQwRJhGVjxw9/OGWOjUP5li+fwDto6WbzN/KrxF3eXh4gJj4Rmp/hZ1VLKsr423xWFSdsfaL/JMpdU8lFlz3c64QQewGJMym489CTaarXCJUbDAYp7Mrua85hOnVybVe172OL7/rfMjWaUQuNGqkIsBaAnP/FLG11RSPSh9slU1WSRa+xsAzRthIteVawgOTzdGnq9/Gp5p/y7hVOT22f+xN+HJgA/hvsgBlNbQhaWwG07oI0Xc0N4tevNMTOAvAciSN5I+nDE8MoYUaA0sKMOdh4wC9X/PRDghWInAfE6BQYEmJ2l6kY7aS1I70vih4WxAY7T2eSHvuyQx+oiCfCioyJF2/l2tJnVns2iWdskKO+l674/RmTrGm+/++xJ+aYIdgcrcc6FjU5XUyt2OG3Uy1tXylq7beijwQE4OVtI530ZbYA3qL8vZht2hSmMfuRu/v4nJPvWVE79Gx+5xi2XD0tMRSvg/fWVBXVFZllA4LR5tewVsU2VHTD048Buk59aKVr0GR4kmKP67IJriwPoJYdVGEqX8FLV10iwpkK4TPfZHC+YT3fxL7MDH4LOJvUgFnmldW9yIbBEl0n9zSfCRXFKVrMgdJudtS0f9VEX0JAoUZdjNhrMBLhc0BWToB9fZxl3vfTN8OcrszZco4b0s1Ncb6EIB9KASQ90Ov4cfetzzB7276gC8XGsXbGlT2V5MQU0k9uP3TvXKgJeXH/lBjNPwALOgw6Xf9h9R39vUwPhVFgSHLrNq4CdHngjYUbNriQZRVZXT5llZ2NeOctEoKDMgNQS06IQ0DpWFXbumw3KGA5kxQis2/trGR7DBn3+TKXz6YkHpY1BKxEoKWxb+9zHaoyVS6YQlP8+6h83BGBT9n4vXn1yMiZT9H6MCLywFHOBz3r8UB0fFL424ga23tOGK8Rxps6hxSI7hlPQYHpa6SBInxtxJLYM4scedmhppYCPmOjQnL2aiq8Vx0YZItGVGEoB9q2jDQaDKU60yn66Z6R4kGNmn962EZqisghzDUUfoc6TFpfFA= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e58cbe4-9181-406b-4296-08da5dd16db1 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:25:29.9121 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR01MB8566 Subject: [FFmpeg-devel] [PATCH 3/5] avformat/apngenc: Check fcTL size 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: kXJtv9YNdBoA The remaining code relies on it having the value it should have. Signed-off-by: Andreas Rheinhardt --- libavformat/apngenc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/apngenc.c b/libavformat/apngenc.c index 7443c77504..1c039685f2 100644 --- a/libavformat/apngenc.c +++ b/libavformat/apngenc.c @@ -27,6 +27,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/opt.h" +#include "libavcodec/apng.h" #include "libavcodec/png.h" typedef struct APNGMuxContext { @@ -181,6 +182,9 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) if (existing_fcTL_chunk) { AVRational delay; + if (AV_RB32(existing_fcTL_chunk) != APNG_FCTL_CHUNK_SIZE) + return AVERROR_INVALIDDATA; + existing_fcTL_chunk += 8; delay.num = AV_RB16(existing_fcTL_chunk + 20); delay.den = AV_RB16(existing_fcTL_chunk + 22); From patchwork Mon Jul 4 15:25:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36656 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp2900838pzh; Mon, 4 Jul 2022 08:25:56 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vSEEkgx3lbnHGK+Cizz62RuylLYRo7xrHXxiOzpTacMALIYwGDHcZ5dFi4aBnv3E4Aed3e X-Received: by 2002:a17:907:971b:b0:72a:b002:7c87 with SMTP id jg27-20020a170907971b00b0072ab0027c87mr11041836ejc.393.1656948356725; Mon, 04 Jul 2022 08:25:56 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m1-20020a170906848100b007120eea6a89si16889561ejx.12.2022.07.04.08.25.55; Mon, 04 Jul 2022 08:25:56 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=c9bDmyzI; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9E9CD68B956; Mon, 4 Jul 2022 18:25:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2061.outbound.protection.outlook.com [40.92.90.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E558F68B920 for ; Mon, 4 Jul 2022 18:25:40 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K92jtK/uu+M6RTzjTc2xi+2W/5cEiI0wTaKpITPM602ttaHL54HQuiRW4Cvxzy0k7L9rR30wGonll6YaPDfUkj5krOBfA2bonDw4kYQ5vcgIUqAAbQD6toFbWhdjZQZvMUwW6oMnI4vC+Tt1MmAxYfof5p74bR5UKjwqpu3GgVNLenH9jkZ9upsfhSMV6TZB8hvcsGSPMXgEwyo8X7ZlwpyUP5PQKUqUh/GkDHcxQODganYU5J/V6byIH0raoQ8nWIwqtUs8nV25ZbJIO5/Tz5NLwNzIzvvEL2N85cUUzuLH8nprCBOWL8i3Pos+RTdTDPr7OGuKqTWaQv7y2gQHKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/8Oi05TJIYy53kL2Sqai+prG70RHwO0OpycOSX8149I=; b=mcEz5dfA/GRFEZCYqiWJctSQkrKukUQtyyi899+m00gawQ6IlNhPBS5T7BInTtBy0I7jY7a8uNfbe8e9vMsJxZHwEzga2fz9EFtWtKk0DuZpwgOCYAqt7zWnJwp61iTyAtnRHc0ifMFzGCmJXDJIu1ukv1L6Mu6dyhv71z7s96wBcEld09Sd0Zjd7lV5vWdcgtBr26oUmsR2VusVMNwZx36HUjcQWplNtzgaR6fECOS2eJVIeEbrHkXLrxlo1RK2qiiYAzilTt1pYI5O3T7Sx6bZ9UniWftQmSslLSSzqJwEVUaEeKW23WM712QqJhbSQkBJ1l7xzQ+FJQ/2FryMDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/8Oi05TJIYy53kL2Sqai+prG70RHwO0OpycOSX8149I=; b=c9bDmyzI1y+MUL+IGnRP7vdEAV7ZDnCM7gEadQrtfUbDpNG610QjgkAgHLVHalcf9Gx/BJdSUxWgcnMcHoUgY6m2a+Xn6gVyfpKjOALosx9jgYK7rgYYptDIbnYR2JsBxK0ncqUol2la4MydBjE1Bx7xDpd5Cg6oCtOzHXTT71Inz4bLyp2kfXmWqRvCkLjwLzhQNrijuKV/TfFkPtpBiWuFL4e2OzEKN1UInKZDwy0A1G7pyolXQk5oXGN1MkqYKXSRR05pEt4eLJwzTxLMzewWqRkyn8QUoEjlWjFkH/aZCV9i7sE4147n9AT7gKgkCQvDULdXcsXWR/U9eaohAA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PAXPR01MB8566.eurprd01.prod.exchangelabs.com (2603:10a6:102:22d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:25:31 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 15:25:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Jul 2022 17:25:19 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Qtpyy3UfxXrmlgNxYSO7Qh9jZZFycZU8] X-ClientProxiedBy: AS9P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::22) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220704152520.1106645-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6bb8e9a0-e019-4b16-89e2-08da5dd16e6e X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSUs0MpKjnPJCEF4AMFZodniWfFV3uiF1f6r7XkDB143Zf0JOon+PYQXhKOgQOnWNEEoFaHEAxFb9UUz/5yAIpbOJLBuBHPzMhHaFBrIUs/TX9B/kM6uQpCZQbNi/yAVq9dgxIFIRI65+G687NMNdrpVK0k9m8bsNSnPL7tZOBbbiHenpQdH9sq/ytAK+HFgwW2PsNydmUUaFfLRzgKTgDvKuW1+RsLv/9tO7HEUGpdCkssFG6ac+dbqSPJFt6B+cyUJpz7h0lEPHQgClkVK8ihnMQzXgZn41TdYcyTI6IUnZjYabGBBUDtXBeQbmMGu+sygwg+FuXxvX29WJDzPvDnuyBVIctlG7StxaslNTouFF0ixQMRyVqWD02hsMnKcJrAHirQ7oEF4dnTIYAkwHcRCkzfHElVlDXJhwhO0ciWfGk0GPOmtaI1HPObMXYRA4+YBZTHcUjFAVzGdr6tEPlnM2dG5Uis/s9PKT2IFaMiBb9Ow70HLhL9srjC4twdxmXSfCUc+OM2zWOKEPwyXxd7YK1JvD2N2tV9Xci5AeJ/tk0Go14CLhm07r7c/Oi25PB3p3oc4hkKTH6XNbDrwjRcZBab8Vwkk3czJsD5R/NPmL4so3+SxKvCw25TgKLdlZPdU+rm5Egngo9p2vMUc7lbEUnUR+FLXcVMiPn51Ws9/aXY/YS6ktnLEt3abNGa08Ejw5M6QrSsDHodNYIZAx+pZ3YJzTlhjGcE1Ciup6+xPqSNUFNHBCO/QRdmL2ZAmow= X-MS-TrafficTypeDiagnostic: PAXPR01MB8566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /nD7X97Tfj+gqXz4/VsRuVYiWzrnHwIaKjDJWR2kyJmSCIlCOIDEquKJYRoipSRgzgmUXrI7wF9Qi7vWqjCNvdpekF2oJ1gLXjMrZGSDJUCR/Ii+gufOc+1EJIJRrP21rSLhgRJo8GdQvNEbhh9c0LklWVshlO7yOagH2KG5wlj5h0MDFL2V0GYdHuF5nst60BWknYwdtUzv3dpeFLnzf/9HEF2mF+s9RUsh6Ef62acpwI6eev3sMjNVU9exb0VjFJlRTbYIoPWsVg3EsNKmfeVDAl1Dj2mwpA2JIdaD1D09/jOifGPmzOE1cFjTQfWBCqdodzsuaBq8YGhfnPEw8jMukNBQz8By8f5yE65qXV7B0oMsGynVXjUERi5riyOVHRIWd6e01RsYmIJvkpRKpbmLdGy47SCHQJZ/Vq+gO4f9twv7NqUor0FRHW8CbRbQhAh30smOME4gJvA6wytYwv8OpDLCXEenWgUpE2iSeGub440j8mAivSJDNL+LNXy3fJkzrZ3yn1Smwx+hnAta6ywJonYkLQLtl2wu7AdaqXMjWh9l1SIVg1/iqx1AFHVPvdi95HrJkDaN/qDwEwogQqwBd0nE6+GuKXXOfQlce0Ty62LECeN1LyBJM3FjKAWPjywTZYR06Pm4XopC+XSw0A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pryeDRYeoFGgJlxC18OTNsATwIfOKuoXmzj2uN17AyKdhrr/nCKNGKS8YStgof9dTxMhto23/3tddVwVPywuRjGNLhTlSwVX9yX7YBXb+bqXpcSmSSBA1Yhi4Kd5JMyDLHiIroZng/vkZmj8o+IPRWgWIBaJvkftR+JuVJJ3X2OzXhdW0RA9J9HsjThK4UcUGPXD5l2VAzxyNYbDwSpgWZtxlK70aLkLuSxw/4fcvwDFk8CC0vs6cWZe6K4qAmtKLQ+uraWV2JHBlfoQeeLNdoxiLDDz6hjDrtxAKAuBMdiARGJIrnZH9Oy5yp96f/oviKLbzsP+BXpzkui3YkdpYoPgPdYHWfcs0v4UEp+xdHlN+uUH3Z1N2YBsbLtvL/s8/YNzag/BfJpQemCm4u6hNoQQzJPHgxilEdQGtTGeRGIkZLhUKXd9YBCcFi1F10CW2jLjMQJ/Dw8X0Vczzxs28OVgYRJjXuPunvAc5ckpS0okMHWC2Xo4vs3btLXy+4+SgGfM8xOmx5fp5uRzStkGzUBN6tZWmLvszKA8JdAH/m1XtNxEdn8cDLb6mt39Zc+BmyZFeBjtMC6zidR+hyBVgdTUaatQUZgWJTZ8liqz/1goLqBLQOy5ZqS/4QyzYelLgnhQiUFWTu+6LWeIrlcdS8+6WNqlAeNI9oVUSoUiHTDN9vBa8/tpnL3wyMhAzxTTLkftyvDwgH/BCA1PXsA/SzxKBAMNYWO7weI3meqCWvpQmCl9lW7X6qyUz6W/gHUSADvx1MId56XLUr6qhKm+zT/A5Xy92oUiEU23AFSXz/iK5oC6zB/xjdIEv0oBnGA2J26cnpoIWOkkT2rppiPuPJlFZq/7exPtdnL0nRxeJ5cnxmWQ++xqOjcfHCGv0tAMMgPib4SPd5oKbj4gr36bDoMyEoVa5KYQUCh8muA16t1VkaPfItt4Y//pqQvg31Di95SpFqNhoYcTVQi1Ud1ThHo+NLi0isQbrE4yY7jAMlb0KkBKqp/B3r6BcG32KkkvckiP1Kbx3zHBMXtCdVk1SErDqvTPfav2ExeA6FSyOxm9yyv9cH2uQPYwEyoGguvkXZjZ3/PY0c0NtyxHREzqziEiEAba2hsD+hahtFAqu9EKzZdQSxwmbJ2kQ2rUHqcjoxHvofQM2uL9BX/0Zp2f3GN6cxIPrFcUzOm5jr0BxGtDc2CkH+2enkT+M3JGs25kUXJvYpnNqCsR78tuHZzBZqchhD9UPaCDb2WEFdf1sJ0PaNYvipRFOA6wobhXbBAfbH72NXMJ2GkEfvBloBswxqjUZtmOlNBEmnS1Yn2Lzv4= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6bb8e9a0-e019-4b16-89e2-08da5dd16e6e X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:25:31.1266 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR01MB8566 Subject: [FFmpeg-devel] [PATCH 4/5] avformat/apngenc: Don't modify input packet 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 359mviHoi9mz It might not be writable at this point. Signed-off-by: Andreas Rheinhardt --- libavformat/apngenc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libavformat/apngenc.c b/libavformat/apngenc.c index 1c039685f2..c219b80161 100644 --- a/libavformat/apngenc.c +++ b/libavformat/apngenc.c @@ -159,6 +159,7 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) avio_write(io_context, apng->prev_packet->data, apng->prev_packet->size); } } else { + const uint8_t *data, *data_end; uint8_t *existing_fcTL_chunk; if (apng->frame_number == 0) { @@ -178,6 +179,8 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) } } + data = apng->prev_packet->data; + data_end = data + apng->prev_packet->size; existing_fcTL_chunk = apng_find_chunk(MKBETAG('f', 'c', 'T', 'L'), apng->prev_packet->data, apng->prev_packet->size); if (existing_fcTL_chunk) { AVRational delay; @@ -190,6 +193,8 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) delay.den = AV_RB16(existing_fcTL_chunk + 22); if (delay.num == 0 && delay.den == 0) { + uint8_t new_fcTL_chunk[APNG_FCTL_CHUNK_SIZE]; + if (packet) { int64_t delay_num_raw = (packet->dts - apng->prev_packet->dts) * codec_stream->time_base.num; int64_t delay_den_raw = codec_stream->time_base.den; @@ -205,16 +210,20 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) delay = apng->prev_delay; } + avio_write(io_context, data, (existing_fcTL_chunk - 8) - data); + data = existing_fcTL_chunk + APNG_FCTL_CHUNK_SIZE + 4 /* CRC-32 */; // Update frame control header with new delay - AV_WB16(existing_fcTL_chunk + 20, delay.num); - AV_WB16(existing_fcTL_chunk + 22, delay.den); - AV_WB32(existing_fcTL_chunk + 26, ~av_crc(av_crc_get_table(AV_CRC_32_IEEE_LE), ~0U, existing_fcTL_chunk - 4, 26 + 4)); + memcpy(new_fcTL_chunk, existing_fcTL_chunk, sizeof(new_fcTL_chunk)); + AV_WB16(new_fcTL_chunk + 20, delay.num); + AV_WB16(new_fcTL_chunk + 22, delay.den); + apng_write_chunk(io_context, MKBETAG('f', 'c', 'T', 'L'), + new_fcTL_chunk, sizeof(new_fcTL_chunk)); } apng->prev_delay = delay; } // Write frame data - avio_write(io_context, apng->prev_packet->data, apng->prev_packet->size); + avio_write(io_context, data, data_end - data); } ++apng->frame_number; From patchwork Mon Jul 4 15:25:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36657 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp2900904pzh; Mon, 4 Jul 2022 08:26:05 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sHJq0F8VKU0doF4/VltcGGMmdzg+HLxfM3TasLfOhePxv+P2TlTxQuUAeidxxJR9qmXIZs X-Received: by 2002:a05:6402:11:b0:431:680c:cca1 with SMTP id d17-20020a056402001100b00431680ccca1mr40780725edu.420.1656948364787; Mon, 04 Jul 2022 08:26:04 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y15-20020a056402440f00b0043578ded62esi13473708eda.352.2022.07.04.08.26.04; Mon, 04 Jul 2022 08:26:04 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=EW6f+MuS; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A9AF668B945; Mon, 4 Jul 2022 18:25:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2061.outbound.protection.outlook.com [40.92.90.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0AC5168B92C for ; Mon, 4 Jul 2022 18:25:46 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aqOqJEaKxuKlirIeUaiLIjXRom2Pw5LpbcPVp+65drKrg8tC4cPi9l4JjYQUEEAD7zpB9M6vT7W939ZF/SmK0CDcXlXvfmWok1jpsNEl5AJzaWnlZKJ3xsP8wnu91OVExotSgi2FG9uSw27iB5KIW9pbnFTl4/vtbuj5mEi+SxbdjknD1bgAIi+zgftkzljKMXW9W6skgD/BSKpNECFVnVgmjGJXn3rkE9Cg39FjE014kEzrWLzKK/vqL7AnRYdcpdFVQEpdotq+bUn1B6nYUEMVw+2PtnKJy07YBlER2rU1hlPCsLbDQpkWx1MKVxSSiWv98irrwCKlVVl5BSDAwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NNtYLezTJ2+7d9VfHIEIFXNajMNH4/AR5MAKLVXxdfU=; b=eDA5EgAClmnqdCuAnC0mGxn79U4HOvhhHCc5ZuX9RSym5Vh8kU99IVQxcNv164c0EzxB8TUoCxkyI4dNyhHJc8apX9JbpV6MWu3sMgfsby0R14FVvhtAtNpGRREBsE1kHj45i2Ejlg4wHJY/+umTFrff8AVIrw5FMOjx2pvDf04gvNBveEM+rr8hlgp6GlbkN5kpKDXvieMt+BGCBkc29WSJJoUCW5KPhuGu5NGey+shy/JE3rLm8JX1xIrfqbfpIDrO1x5wRTUzrgCWJMXNjMJyCTTyU//S1IcemxAyWSvvYItvC74Kq4yPyPMfNfTGPb5auqYPSLEfmWwQYr4gXg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NNtYLezTJ2+7d9VfHIEIFXNajMNH4/AR5MAKLVXxdfU=; b=EW6f+MuSqtbZ2RDtWjlnHQaLUz4rHwLkC61MMnYXHEXbfPzXzJOdS/UWx1J7bpU2rUxYAkgnlVcnwpXQoCAX4atLrRezXNPXruQOxd/P5u7bpfY1B/Hq7yz3/0xIRIFfPJq1TCt9Z3XPPK+MhZmVEfCa0YztVeTRSYdwFHNnlI+VKsoYnYvrmTio47u21Iq39YbesUjx5qCvDKygy0vyp7amP0i1HX9Doz5dmGzYYbzlsd+PxAjqeAfEpN95xHCw7MSDZviHjCcED1ru1Dzmv8p6yATx9NJADNAyQJIaQ1Maf47KCGjNsT3jMD9OR9MhrYSMDODop1+BUcaNvAvJZw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PAXPR01MB8566.eurprd01.prod.exchangelabs.com (2603:10a6:102:22d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Mon, 4 Jul 2022 15:25:32 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 15:25:32 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 4 Jul 2022 17:25:20 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [xsXDgYIYsNts/jaUbygKLLy1fYWHD866] X-ClientProxiedBy: AS9P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::22) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220704152520.1106645-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2456452d-212c-42c3-7036-08da5dd16f19 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNUxDAI+Tg+jRSc79YAuptYJS4hF1vgpdIxvj5g7wlOqY6ppOytkeSQyue/1YGzw/FmHe1ftVvQ8xai+0ztqVcL2u1zzrYGQm4grC+K8tJ7NV0motwQdcGB9F8M+lWKoKaTiTQor8bkvKszYOoAoL5J2j5tECqmC1RiLPHRNMYBbk8+V+vnXFvhX2V5DGR5MPkDlhlrogUjQxfZpOuS8MCtSFznVgLDuy9o3Szv4LmCvDt5OWEUBJ4JREuEC4EBBZCVu5D0mVOPyqfu49aLNaDpwfBewwhRUededO9J74hmOy1ZXxiHfMFkjLxTWAsNk7YqXvSH52Z/CptVylPLIu0ZuHB3MUfpkpxTmeX9EWUMrRWnY1jnn0Vv/irQkNBFDwTUbmbcIATMUgRexp0FJubfxgBduFmfj3IZCH9o3ZE+jS9N/ld1HbBymLjwYa4QnPiU8BO2+IpsjLSQiEs7otlauKjaUAtCrp5O/sAaJmnyKXwMsQsUkYw5/aRpAgAxoYajEceHAc/eK4Pcq0v5A2NZ0AIVawK5iZ5hvM75kTIvPOWIN3lA7tUZ5jtJ3vYwVZC1zUn/vOYPzrKtJRR33bv6ANHhp+lznTgyg9vS4CpPe3dPKdfI/NV4Be48dPP85CmHfQ73FVFu21h5hbXuz6RcOFnPoGUkl+Eb8l8PnOmFRKK3PTnpZ2U5XO/nTrRiTNgAegCxLho32ZvM4+GcbF7V7gOO2qo6UJWY= X-MS-TrafficTypeDiagnostic: PAXPR01MB8566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZLpr/UU/tTwkohUwYzCX/XtOpDqJmxnERlB35qjiBVf3LCfs6+m0V8EQ0u5ngU3yLmJvRGDFW2TFHGZl0RSFqM3wXlrWPlLLQYtD7tnkVIOo6K2FjZtC+zFiUPvtzM95xo/E+LxLZRlJSYO/W5NAm5ZkB6qGj6aTTWrZRRlRuXbdGL4uCeDF4qYSf69dv1rTDdzgcernalH1MTyZiHJBFNGIFkAvOYjdt3YkhHlem25enfg8/GybS0RBhETDDodSmxU3mpTBKCWSrL6G+S044XBZ3mQNk0IfdJ18Skgv0zZZH7bJu7LpXLGQEMNoIHXT+5oxf5E64DREZabPJdb9qoIbrqpVE34BW7uwCPwRvO2qN1bChD2qMt9baqUsNI+1KxRqNS3nBvvQrt6xTRxx6rFueJuYALFJGNwyqrFHzZXoVeAKawgDIrooj7s7bxWPqPmHacW46Y69jVFxBBkpL4rRtfHPwFLrt445oE74h4DBTqUIKCwlV3oL7fDJctarmJg7nOom4uA9/JhvMrG1u9nqvUbsNIpvOlVzLyqADzLvbVhKSipNZD/ank6RKptOVTj2WJHcQffMSl1kb+UHk8z5vBYE1sx+wZexkUnPsoUPGejzLjgqvEm2hM8Km82b5U8jIMfhad08pcyfbzqN5A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kdaTFobzfzf2DFObTS7tuBTgDWJt9Jhb2leseSkxZXGQaTnJH8MrWYRCR0bZw7lW/+JsNSKqOyzygQVzRhpG3ubFzw9y+1PdOS8I9nlRaUJq/5Q+2xJ+BJ7ASjA8LJd06ve3pq9Z0iEXpAcWoVvpXW558MCzwnN50bM5hlZSWlpO7eacr/ylC072/Nx8wZ/HR/1NRVGZ1W1xmylxPL4f0hVnX1tFF7Rc4AgcOkit2a7O8eOMZ88HW3ie7kaXlvKYYCdfpLEyMt05eAG7eD3gVtyQzLb3/7gOuBvB+z1Ny8vRKXdfBWn6s140tZ+B/PO39DXxDNi//gqQdSF4pvBmqxZFh8evL7W/I6+qd7bVxuMyCAa7fVYT2+Pf+WoIWtibB8BmTHn5t2sEC1mjroCUYtzAwxeQoEcYUj2g4Yo9WSUHlMNt2TuEX46lW+jEeb8ctuwE8Lq3BDhvXl75dPb3VqGMOIHxIKgZeXlYKoRxAOp2JIoUPltJ/QK3qrxSCzD5LQE9d1/UWENClYQzFq39KaLBlE2TumV6ndvhnIROXHW8bb/0ycfY1jjY1wtNKHI/v70Uad0Ht+SsY5s1DIptS6vDdsDM6PDMGFph/xLflI1RcY+SFfoUSoICp756aJrsIJIES2BMFfmxMIv99l3GxNbkmqf+/qQQuN3VJiUsaocGpypKVEKfPO0ZooQcGLQuIPvbsQakVwmAnemYB70Xov8Rcdpg8u+0hAlMQilz1IO5SLIlGccB8uSudPz3xURYAz+0y3yqHDV/86P48WnPIMPr8RdDoyGlN6V2/4hklnE4cEJoQaYRa6pWFVlFhSa1xbSR7//f6gF1NTkKJNYkM+0ieKHvo9b8u4RrXdbhhWNUSzEVEWnRXkStRP8aWI0X3yksjkYz6F76lzH+MbR+0+6BdzLpf7ieANrKV2s90T2R5oHoUsRNZvuI9xd/tYOUGFLdMu3W2Oytu66PNux+Z3mEuCAehreS3O8+yds3TlHeLArpr6X05F+RudRoEg/Vb37lPxl+E0zogjgSf8lTL1JerHkVXofdBjQUGz0u5s1BIlb2ZxwWfdjQr4qLKHce4OFpuUfiHRSmiPoe+QczGKc7MKJX0t/t8qzxHaIPa6b/vxIKFVrJ/OWeaZfR+QRPdWVGUNWawHlit/KPY/keCckoHC1TMJEGoH1DYbV3E8SuSaNLW9bfD8wI5aqXU2C2cwos5QVs2+gWiTjMOnCqURX2ihcEHrjOM6WOGnEu7A1cT3mXQR/qbqQB63OUR8Oja2smTNv3r40XGCNQy0VQbqs1xhSk7b0Oj4IF6OnHevU= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2456452d-212c-42c3-7036-08da5dd16f19 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2022 15:25:32.2426 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR01MB8566 Subject: [FFmpeg-devel] [PATCH 5/5] avformat/apngenc: Add const where possible 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: +6o8AE6U3yVd Signed-off-by: Andreas Rheinhardt --- libavformat/apngenc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavformat/apngenc.c b/libavformat/apngenc.c index c219b80161..cddb148d50 100644 --- a/libavformat/apngenc.c +++ b/libavformat/apngenc.c @@ -48,7 +48,8 @@ typedef struct APNGMuxContext { int extra_data_size; } APNGMuxContext; -static uint8_t *apng_find_chunk(uint32_t tag, uint8_t *buf, size_t length) +static const uint8_t *apng_find_chunk(uint32_t tag, const uint8_t *buf, + size_t length) { size_t b; for (b = 0; AV_RB32(buf + b) + 12ULL <= length - b; b += AV_RB32(buf + b) + 12ULL) @@ -134,15 +135,15 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) } if (apng->frame_number == 0 && !packet) { - uint8_t *existing_acTL_chunk; - uint8_t *existing_fcTL_chunk; + const uint8_t *existing_acTL_chunk; + const uint8_t *existing_fcTL_chunk; av_log(format_context, AV_LOG_INFO, "Only a single frame so saving as a normal PNG.\n"); // Write normal PNG headers without acTL chunk existing_acTL_chunk = apng_find_chunk(MKBETAG('a', 'c', 'T', 'L'), apng->extra_data, apng->extra_data_size); if (existing_acTL_chunk) { - uint8_t *chunk_after_acTL = existing_acTL_chunk + AV_RB32(existing_acTL_chunk) + 12; + const uint8_t *chunk_after_acTL = existing_acTL_chunk + AV_RB32(existing_acTL_chunk) + 12; avio_write(io_context, apng->extra_data, existing_acTL_chunk - apng->extra_data); avio_write(io_context, chunk_after_acTL, apng->extra_data + apng->extra_data_size - chunk_after_acTL); } else { @@ -152,7 +153,7 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) // Write frame data without fcTL chunk existing_fcTL_chunk = apng_find_chunk(MKBETAG('f', 'c', 'T', 'L'), apng->prev_packet->data, apng->prev_packet->size); if (existing_fcTL_chunk) { - uint8_t *chunk_after_fcTL = existing_fcTL_chunk + AV_RB32(existing_fcTL_chunk) + 12; + const uint8_t *chunk_after_fcTL = existing_fcTL_chunk + AV_RB32(existing_fcTL_chunk) + 12; avio_write(io_context, apng->prev_packet->data, existing_fcTL_chunk - apng->prev_packet->data); avio_write(io_context, chunk_after_fcTL, apng->prev_packet->data + apng->prev_packet->size - chunk_after_fcTL); } else { @@ -160,10 +161,10 @@ static int flush_packet(AVFormatContext *format_context, AVPacket *packet) } } else { const uint8_t *data, *data_end; - uint8_t *existing_fcTL_chunk; + const uint8_t *existing_fcTL_chunk; if (apng->frame_number == 0) { - uint8_t *existing_acTL_chunk; + const uint8_t *existing_acTL_chunk; // Write normal PNG headers avio_write(io_context, apng->extra_data, apng->extra_data_size);