From patchwork Tue Mar 22 23:51:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Volk X-Patchwork-Id: 34915 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:ab0:5fda:0:0:0:0:0 with SMTP id g26csp769811uaj; Tue, 22 Mar 2022 16:52:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzX81D2SybvXcjfGniBfvs+Qxy6gs/Cqv/RXTsegpccG8RnYA7raTegj0crnQgGj5wl5qO3 X-Received: by 2002:a05:6402:7c9:b0:419:30b:e3e6 with SMTP id u9-20020a05640207c900b00419030be3e6mr27903206edy.399.1647993143791; Tue, 22 Mar 2022 16:52:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647993143; cv=none; d=google.com; s=arc-20160816; b=F9+VKYW+Qfyo2b68L+wHZ92VNPg0IXl4GbCVRDp+AKsNA7iBf3Zf4aw8mY4mR7GXZo pI7+5XSMUaeGKIhsrwkgv1tqVK2peQhkdWzjrMvg0f1RDgtwWIhcIO/YdbkH/VNHcH+M EMtKFXGkKnpprrC2Rh4DV23FmCmTcu81UhuPP8Q1mErPEhCv4gdOufomXFxdUk2dpEqs DDLnlIMv6ojUBjNMS0CIwcoIZRVQUICW2XBo5Fn8kximDbBB12FN204ktMcJ+HaqxGW0 6thzK9gN7pQVOHB/wy3j6il/04XcyboUgkSwO58ZJO/wiVPdOx9tKCLMTkQZSWHu6WIC kWuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:message-id:date:from:mime-version :dkim-signature:delivered-to; bh=AxLKhwOgxLGxps7YNNarvXcBo+PRz8oQferSOymVlBE=; b=sdTOUdd4Z1Wm9HRUCNjO9CKkoR+DgBezhjFXtmL3hrk11L2VS+VLqZ7CEnEZrx6EFR Qnig0z0mf8dl1QdhpxE2qzkJ3zGVp7+5rWWH1KLLR0ZKBu6XjV9QQaGLXy/a9msKSd8Q fyGmrAoy8tgvMxxiDx8VI/8Ruo+Nq5RI3lmn1gy0K11n03cs0F8HFFO1d01+dLRmQW6Q +U5iGObbypTBBQUr84GlReZvQgzQjJhqjQZf3dg1PchEpXYeXSB6PHf+5+Q/hrI0PzYj E/cLAAfcjZxSfvOmEl+Nn0F0jKUhG55LocpBofuY930CDG21O9eER2VrGZYhbMbA7who admw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=MHLVrRUT; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 1-20020a170906004100b006df76385d68si11821303ejg.520.2022.03.22.16.52.21; Tue, 22 Mar 2022 16:52:23 -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=@gmail.com header.s=20210112 header.b=MHLVrRUT; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D56D68B1B0; Wed, 23 Mar 2022 01:52:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yb1-f177.google.com (mail-yb1-f177.google.com [209.85.219.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A147D68A6F6 for ; Wed, 23 Mar 2022 01:52:12 +0200 (EET) Received: by mail-yb1-f177.google.com with SMTP id t11so36582778ybi.6 for ; Tue, 22 Mar 2022 16:52:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=fribVzV/dAPEgMZNIprwjnLIjEY0vVDhmlwlL46rZEE=; b=MHLVrRUT37eJwBYyOH2eKfWrhDM/qJLRCj6m5GlKxGZ334x0SS19R1Xa2nsc8Ln1lF s3wke2Qb2tvpdflTTjUioHEDUYAzpOiLYtiSx3eo8r5Cx8rJPC13N2OZDdLO2CLHkS+I BMYtWU57N2o7GK6BrWrsM5zu4LFytOucVu+J8zA1aw4Fw21hpkfN/0UIsWAd3wY6n2W0 tcg3ICR6LToDFPP5rgbm3pNZrPr4w5GMlbfcL51dSlO1gIE+SxWHtWJOSN6jWxx99UER qrc8RLMUfMRMdWlA2+TkIFp9lp4nPHCPnMYqJPMvdUC4c/wvqqHnSiBIV3kRVguG+CN0 aBsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=fribVzV/dAPEgMZNIprwjnLIjEY0vVDhmlwlL46rZEE=; b=rsZgP4p7AfmIfba9Lkm6aJoVhnFCJ5jcp9fDSciCVS/DElC69yRpY7XzWr280puFwu Z5XlLdSG4GbKjZizEu7fQzKqmxe6XjyCLYgnj9f5XggKbxMBRLQTHNRSmq0O7SPuSygl RfVR+fu74CpCGoEckNE32i7tK4RW6VQocQJButh5BhU+6g+xpDsQf9BkR7VVvQQKFljJ Ja6FcPyhJq58ivIrE9L2Jp0D6zpE4gbbV7BDoJaDY+xNVxgbEQDVGbHRyqxOND0bO7HR U8WiPsLOrWA5zbU2QODy2v9Kk5iU8yr5mAefX+dQtRXxqBMgeAAXDEh9kOoHH559TI3Q TihA== X-Gm-Message-State: AOAM533F2GURAIqq1pu/1+XlYHr8rCAbzizilBfP9D3CAt+IB9616Fl2 aczr5qk3Iofggw0W+7i/BTDK+6C7IiOWdQ21m10D98pHQe4FTg== X-Received: by 2002:a25:d8c3:0:b0:633:c81f:737d with SMTP id p186-20020a25d8c3000000b00633c81f737dmr19968242ybg.193.1647993131192; Tue, 22 Mar 2022 16:52:11 -0700 (PDT) MIME-Version: 1.0 From: Andrey Volk Date: Wed, 23 Mar 2022 02:51:59 +0300 Message-ID: To: ffmpeg-devel@ffmpeg.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec/libwebpenc_animencoder: Fix memory leak of WebPData in libwebp_anim_encode_frame() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: r4TegjNyCFsi Signed-off-by: Andrey Volk --- libavcodec/libwebpenc_animencoder.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) av_log(s, AV_LOG_ERROR, "WebPAnimEncoderAssemble() failed with error: %d\n", VP8_ENC_ERROR_OUT_OF_MEMORY); diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c index 0f5b524335..29c0d8bb0f 100644 --- a/libavcodec/libwebpenc_animencoder.c +++ b/libavcodec/libwebpenc_animencoder.c @@ -70,14 +70,18 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, ret = WebPAnimEncoderAssemble(s->enc, &assembled_data); if (ret) { ret = ff_get_encode_buffer(avctx, pkt, assembled_data.size, 0); - if (ret < 0) + if (ret < 0) { + WebPDataClear(&assembled_data); return ret; + } memcpy(pkt->data, assembled_data.bytes, assembled_data.size); + WebPDataClear(&assembled_data); s->done = 1; pkt->pts = pkt->dts = s->first_frame_pts; *got_packet = 1; return 0; } else { + WebPDataClear(&assembled_data);