From patchwork Fri Sep 2 21:41:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 37615 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp1216871pzh; Fri, 2 Sep 2022 14:48:47 -0700 (PDT) X-Google-Smtp-Source: AA6agR4Vir38JWpKL4eXWJKiYXUJySN+ZasKcSz3AtquX9L53WUXm0xwQ5wIk2ueWNllnFDEOvPC X-Received: by 2002:a17:906:cc13:b0:73d:d22d:63cd with SMTP id ml19-20020a170906cc1300b0073dd22d63cdmr28818248ejb.741.1662155327138; Fri, 02 Sep 2022 14:48:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662155327; cv=none; d=google.com; s=arc-20160816; b=QBlDjXeOJY7IYGscBGsi1L2NA3C+NeyXi6MCA2alxZz1Pn+DfwWquKEFUiqR5aOl0z vPYxIacYZnCrW56iqx7sMUKXE2sWv3JLtVUHey7bjx023NmVdxcmDHmeF7iKB3082Pql udNcm4HFmPcH+93q35Loa9N7bLV2UKomxrrZkVMamZLqBR3VWHOiFm5EKxo89yYgrv2K AjwYNp8zumyZlohmh64CFsefD5pUCeeM3+FmBgCyqHCC8cFKnVetFGtOKponWzVx7c1Q 0oq8gjwFYpki3M9s8srH7ximlQ5pNTl6Zl1jr3B/SfF2s8zMmBUxMJ0whR7NRgd+rR1+ sLog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to: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=GTFWO9L6cEpAAf1aRAVzSfW+rRglg0zz+g1jhg2inBU=; b=rGHKQj9gYcwulBR34aF7Cq52V1vhdIIFp0vbOjalKkhgRC3WzNqVI57kE5rrX5yJ+y a4Ro/oQJ4BToVM5Lq4E3MXURpltqz6q4lZXxjrrOocfyxbtco1kD198yQjLhMYK9SWhm Zf4Bz7pzSHMcXTbHUHmPim2oPLAHiM10ohPpe+XpFPkeBA9F/JB1/SGa5XeX1Zz7F+jW PiR08Or+zDaeWwXQS8RxVeA4c1OYfUJe0GjH4h41QGPpGT1pVy6znmRLyZd/bFLqYhvc jTXpFqJKYF1qp44tW6XL81+K9mjffF1/bnVDolqaJrAiv5WLW9owEdl3k0B3IE7+hN1e 82Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=HuT+hP2i; 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 y25-20020a170906471900b007416895306fsi2075498ejq.645.2022.09.02.14.48.36; Fri, 02 Sep 2022 14:48: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=@gmail.com header.s=20210112 header.b=HuT+hP2i; 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 2803168B743; Sat, 3 Sep 2022 00:48:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f179.google.com (mail-yw1-f179.google.com [209.85.128.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7EE1E68B823 for ; Sat, 3 Sep 2022 00:48:26 +0300 (EEST) Received: by mail-yw1-f179.google.com with SMTP id 00721157ae682-3321c2a8d4cso27961917b3.5 for ; Fri, 02 Sep 2022 14:48:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=lnrkL4Fc2Zy+WKP0TywrU+rAQ60k5ooGWPG2+GOpo0I=; b=HuT+hP2itLGHQQVtaGITJPquiZ53mGGAkXkzMYvm375DZbm1BIwfSYNORrwBUvO8fi 3JIcJ9bLfELpt2gl8HHsT++xXi9UyJ92wm13F0SSpfntT/2L+v2NpjPP1+FdRIImK/KZ qRULnUKuujtIVAtVV+6Hy2Zd9FwE8lqguQGNVK1RCSl6JB9s6x45OSXVhXsOjPyMUnrO jMjcLYDRNsACzL+W07TbtUXAwcqFPKBnUWsQPAT9aABN45gWVkJVIKtur2CX+Qkn+eU2 5EZtvYFhihcgGENrPDpEy8R1TdLUr6JWPBwtUX4l4tLG7MzmqfS3dhWw9qAt7AzpNh6J eyVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=lnrkL4Fc2Zy+WKP0TywrU+rAQ60k5ooGWPG2+GOpo0I=; b=4MLF1zvCjh7pP3PlTylivWjl3x3hMUr8cDb46W5l2c87AuGehuDnbBLiopbOEMCkp0 vb1qjlPpnQiPkABh89WfRodeZVsQyJstD8FQoKoY9sYshb/BOvG7e0fOF4Fzv1o4uAR0 SvFcVFHz8Yvtmc7Ci4p9j7nsrDWPLqt0sX7HeLh3Q+BpAvEmbu/fR0Xnf0A3pJHwtL26 HMOeyA+2xZBCnju0HakirUQvSmwTKKT35s6fb4rt/EWWbiEbN+cSKcTcB4s0/Ax6VEe+ z2V/lZT72wSO1QM7Fq9IB0JrHesSP/hSFUBHMFmO3LVsxOKNpZo6Q+0uiVAL/Hu7oLmm f+wQ== X-Gm-Message-State: ACgBeo1g+Xvel0BMX57YzKVa9suPknfRZScsPeXrMd0lr1zckSf0+pOq m1bXeTa4lbTm5bc6U3dcETyQwu9b+urbC2WbhSPitDn1 X-Received: by 2002:a0d:da07:0:b0:333:2cc6:6203 with SMTP id c7-20020a0dda07000000b003332cc66203mr29432426ywe.311.1662155305090; Fri, 02 Sep 2022 14:48:25 -0700 (PDT) MIME-Version: 1.0 From: Carl Eugen Hoyos Date: Fri, 2 Sep 2022 23:41:44 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavc/cfhddata: Reduce required stack 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: VQnFe5X5fbgs Hi! Attached patch reduces the stack size of an init function, fixes part of ticket #9399. Please comment, Carl Eugen From 0f034ebed2388e89e241d7e08bf59d335b5c4cee Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Fri, 2 Sep 2022 23:36:29 +0200 Subject: [PATCH] lavc/cfhddata: Reduce required stack size. Fixes part of ticket #9399. --- libavcodec/cfhddata.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/libavcodec/cfhddata.c b/libavcodec/cfhddata.c index 55c8004bdd..17aa888c84 100644 --- a/libavcodec/cfhddata.c +++ b/libavcodec/cfhddata.c @@ -276,10 +276,20 @@ static const uint8_t table_18_vlc_level[NB_VLC_TABLE_18] = { av_cold int ff_cfhd_init_vlcs(CFHDContext *s) { int i, j, ret = 0; - uint32_t new_cfhd_vlc_bits[NB_VLC_TABLE_18 * 2]; - uint8_t new_cfhd_vlc_len[NB_VLC_TABLE_18 * 2]; - uint16_t new_cfhd_vlc_run[NB_VLC_TABLE_18 * 2]; - int16_t new_cfhd_vlc_level[NB_VLC_TABLE_18 * 2]; + uint32_t *new_cfhd_vlc_bits; + uint8_t *new_cfhd_vlc_len; + uint16_t *new_cfhd_vlc_run; + int16_t *new_cfhd_vlc_level; + + new_cfhd_vlc_bits = av_malloc(NB_VLC_TABLE_18 * 2 * 4); + new_cfhd_vlc_len = av_malloc(NB_VLC_TABLE_18 * 2); + new_cfhd_vlc_run = av_malloc(NB_VLC_TABLE_18 * 2 * 2); + new_cfhd_vlc_level = av_malloc(NB_VLC_TABLE_18 * 2 * 2); + + if (!new_cfhd_vlc_bits || !new_cfhd_vlc_len || !new_cfhd_vlc_run || !new_cfhd_vlc_level) { + ret = AVERROR(ENOMEM); + goto end; + } /** Similar to dv.c, generate signed VLC tables **/ @@ -306,7 +316,7 @@ av_cold int ff_cfhd_init_vlcs(CFHDContext *s) ret = init_vlc(&s->vlc_9, VLC_BITS, j, new_cfhd_vlc_len, 1, 1, new_cfhd_vlc_bits, 4, 4, 0); if (ret < 0) - return ret; + goto end; for (i = 0; i < s->vlc_9.table_size; i++) { int code = s->vlc_9.table[i].sym; int len = s->vlc_9.table[i].len; @@ -347,7 +357,7 @@ av_cold int ff_cfhd_init_vlcs(CFHDContext *s) ret = init_vlc(&s->vlc_18, VLC_BITS, j, new_cfhd_vlc_len, 1, 1, new_cfhd_vlc_bits, 4, 4, 0); if (ret < 0) - return ret; + goto end; av_assert0(s->vlc_18.table_size == 4572); for (i = 0; i < s->vlc_18.table_size; i++) { @@ -367,5 +377,11 @@ av_cold int ff_cfhd_init_vlcs(CFHDContext *s) s->table_18_rl_vlc[i].run = run; } +end: + av_free(new_cfhd_vlc_bits); + av_free(new_cfhd_vlc_len); + av_free(new_cfhd_vlc_run); + av_free(new_cfhd_vlc_level); + return ret; }