From patchwork Sun May 23 14:54:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27927 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp2188583iof; Sun, 23 May 2021 07:54:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxzVEGJZCgi64c+8EYLu29z6r+njOOp1okLhaWUZVRFXe7996wLV2J1/F10ACXLaki7adIJ X-Received: by 2002:aa7:d843:: with SMTP id f3mr21003000eds.270.1621781699762; Sun, 23 May 2021 07:54:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621781699; cv=none; d=google.com; s=arc-20160816; b=kVaVtaUrf58KgxCc9h31Pe45mCwAbNQdwriaDhE2KoqXLpSvpZM0tWlBZ27DBoMznS LasTl8vaQoX7F0xvwjmiI5DrKM7DQk9PkLPd0vKKknSW+PLNk4i0XoWCrTSxewXjArhC EL9/LpUF3Vd5SL1xLVb997W3z6YTqaiJUqq3Fhhp88QK/UHmrMnQ6KHZYhOSLz2ZitrE 7vvPGacUtTkpltidHQjNpQOo+bM9GimqzuYwa2SJ+K8q3TCcRS3hJzABXBJpdvv3KB5p mVq5l9Tcw9dN9eVN2MN4tPS+1MPtXqsD9jV5wtR+LLyighl1eUt1BzMgF+pogDEyfCoA dLbA== 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:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=YPslmvH71FFkLnTSrwKLiXsPMTn9TsVt7P/e67338dk=; b=gY13xhKtK9qocrtOM2U6JNrqR0S7rZj2VjMnQ2+1jMF0h4QCAybCx15PakDYq+OKqT Vd2fXqhRy+WjHJ+T7G3TROdKi4bzQ0xpHadgBdna6M9U8X5BBcpyDWKCpxWQ3pdJrJLZ moWOPAF1HG2albZSn0SPsmlVUzTPH4FHxTjtPdEw8yvHruaaurJk1dm//8sNY4hNJjWI VVD9iyN+uVLwleWKLzrahfCh9eZKjKMbNRcXGbohHLWajHLPTPy+QRDG21I/QXr71pyP tWFksY/zOCG2yPP5V0QVMZRHq+5xj9r5ehnVlXXUqhTtW++5zclOoMiVv5u1DKnJVBmN KVSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=G+9ILtYM; 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 cb1si9977896edb.233.2021.05.23.07.54.58; Sun, 23 May 2021 07:54:59 -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=20161025 header.b=G+9ILtYM; 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 9182E680C28; Sun, 23 May 2021 17:54:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EA8C068018F for ; Sun, 23 May 2021 17:54:47 +0300 (EEST) Received: by mail-qt1-f176.google.com with SMTP id m13so18863478qtk.13 for ; Sun, 23 May 2021 07:54:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=TQwUOwdv7BhJYl0LQzSfoHFYlSjlFzjtESs3ExUIDP8=; b=G+9ILtYMWJEnWSXje0c/mQlFPJAphiQgyuHTiqg2asmnXf6lJWAkGI5gO9kyVSZnNZ 9p4Kx4H0b1cuX37aoZN9ESqwV1+GJpqYSPHWb6iq00o8ssPeL3R+NynbD24qGdlFDpgm fiN4p5AG9WGs0sDyrIToozWup/suCBWYHG+9xD/enGrloKqNJ7mUbMZD/eAfip0iQgLk sDnsC5Jt0gleYSXJJeyfjp+EmC2ioGu338yvdAnVomE3kTzCk26hDvsMXXqOrVSzvx/4 6fnPbgYSG+kj1e7llACxLWM7/3xxZHjP2EannZeQuO2GJx80tuhgl1eT8IK0RY6xmvt4 yNVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=TQwUOwdv7BhJYl0LQzSfoHFYlSjlFzjtESs3ExUIDP8=; b=DOOMlMQVOx9pyeMUFML1cfndU1O1uFNOc/Mg9R09XaGXRrsf2YZfZ7YTLso+iQhB8w 3NJNoyNugncaTTMDN8FIYv44Xrx9GVPrIWyTfJI2uDJzMpv21l2+N/5Ak30ceMT5UURL pRnqr9mRa8+s0IR5v3S/x+saw70hAgDkXDzxxH/61Cd0JTPHjdl7t2gPoSdc2B22l5nM 21xQgxdyOFUhPltcjZODDQh0JXVg/MVE85cIQSauqXt2jJbOX+NkjlbLG500NvKN7x6L KV3/5YjVNLTnl/Onw9UV1KGHpdn5aT5xWLNz79zcIvvQ5GUa6PeBTkNrCPQSlTMl0EnJ ffJQ== X-Gm-Message-State: AOAM530+u0Nzzw1BfLFCeHYU+cAGd32cGHUi6OctaDf1iXg3GRS2ondN ND9VRP6c8uty/SMedyD5eoiRZTaDaK0= X-Received: by 2002:ac8:5d93:: with SMTP id d19mr22266975qtx.289.1621781686329; Sun, 23 May 2021 07:54:46 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id t17sm8090977qto.92.2021.05.23.07.54.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 May 2021 07:54:45 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 May 2021 11:54:31 -0300 Message-Id: <20210523145433.5426-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/utils: don't use ff_fast_mallocz in av_fast_padded_malloc() 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: YVhVPwJJ68t4 It will be removed in the next commit. Signed-off-by: James Almer --- libavcodec/utils.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index c08f9a7da3..5394a179b0 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -29,7 +29,7 @@ #include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/intreadwrite.h" -#include "libavutil/mem_internal.h" +#include "libavutil/mem.h" #include "libavutil/pixdesc.h" #include "libavutil/imgutils.h" #include "libavutil/pixfmt.h" @@ -49,25 +49,31 @@ void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size) { - uint8_t **p = ptr; + uint8_t *tmp, **p = ptr; if (min_size > SIZE_MAX - AV_INPUT_BUFFER_PADDING_SIZE) { av_freep(p); *size = 0; return; } - if (!ff_fast_malloc(p, size, min_size + AV_INPUT_BUFFER_PADDING_SIZE, 1)) + tmp = *p; + av_fast_mallocz(p, size, min_size + AV_INPUT_BUFFER_PADDING_SIZE); + /* don't zero the padding if the buffer was reallocated */ + if (*p && *p == tmp) memset(*p + min_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); } void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size) { - uint8_t **p = ptr; + uint8_t *tmp, **p = ptr; if (min_size > SIZE_MAX - AV_INPUT_BUFFER_PADDING_SIZE) { av_freep(p); *size = 0; return; } - if (!ff_fast_malloc(p, size, min_size + AV_INPUT_BUFFER_PADDING_SIZE, 1)) + tmp = *p; + av_fast_mallocz(p, size, min_size + AV_INPUT_BUFFER_PADDING_SIZE); + /* don't zero the buffer if it was reallocated */ + if (*p && *p == tmp) memset(*p, 0, min_size + AV_INPUT_BUFFER_PADDING_SIZE); } From patchwork Sun May 23 14:54:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27926 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp2188658iof; Sun, 23 May 2021 07:55:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzBckre4mZOKazF24bzFPYtjxACeF4mD13wZ2SW0XtPcOeSSGa1KDxX1M2F3M/37b82KpDb X-Received: by 2002:a05:6402:518f:: with SMTP id q15mr21200844edd.345.1621781709007; Sun, 23 May 2021 07:55:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621781709; cv=none; d=google.com; s=arc-20160816; b=D933boxeH8ZA67l3nIBBlzc5Y00uAYYpbYVfpZOZf7fQ2S1driUXlOJBPAmFGc5iYt TdhcI47mSBRKJTHAmhBHX2qw48xZjCGGJ+tCvs57X8dUFHnJU5Hb/0FUMAnbGXkv+TCb 0z5OinLMVt+6Oz0CN8WjdeKs7+3STDUlrb85Z5UyPYDJN4IUwzd+D0KRNarPJGJcoK+0 RRCVUKmxRNO8oDCkS7kFg8E/hf4e7GZXg9dJ4d1D1c0RKMdQzF9bHsw8GiaG76yetyPe AezmcNL/kPHMeihDHY2ap6S2t4JcXja4x4/qaMhp7R4BrqUVPWIuCfDJ8o3OTVrBIRkx Yo3g== 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:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=F7gzhzMOF4x0wO7thxKzZVXiOcQ6pn3yRSE7wzdKQfg=; b=my1hO3n9/Kex75LMNEeaa/s2Q3ue1oeJu3gM6QT/8SWMcoerbKKQspxup+qCDtV8x4 zsrPa+2+qptugtlGxASp1zgYA1S2OhGQO0jJWEF1a1SzPQad5ArZIuRKh87jikpv0WnB fYZT8lirwcY+QA09fsY3/QmpKMEtDa2ZD4YdXbCRFJHQjbrhKMoy43mr6l12BDbnj26t kO1M6RSBRHFR7Vjaqf0H8kAAyiEtPxezB7SljgW+++bPX05bCwV9e7plOyyeO1hq/5Hp 7Io35eN6x2uGXM+2VHGMR1pJFpRHDt2vqL/ab1EVLklzDJkQ2liCHwZCCClCwD8AR0+F AhNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b="na1vss/1"; 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 p4si1100377ejr.271.2021.05.23.07.55.08; Sun, 23 May 2021 07:55:08 -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=20161025 header.b="na1vss/1"; 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 E6D7E688133; Sun, 23 May 2021 17:54:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 26BF86801D1 for ; Sun, 23 May 2021 17:54:49 +0300 (EEST) Received: by mail-qk1-f181.google.com with SMTP id 124so12384744qkh.10 for ; Sun, 23 May 2021 07:54:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=BHjgVzV7Rb26jtqSzFnXzOHd9xE+yoT9Z6/lMXe2tq8=; b=na1vss/1b4yy7YDn3acFowSbdTGE0AKLdbnVdRzF6gG74rgt401HFRoRtHC7Jd88y2 qf2O4yfm1Gdv+2GdWz1agcVQXcYJUkVoKn9tIHU8bPYEUqzGskVWFYVjMlwoh8z5sNr9 4YqJjmWMvFE6wnYB2cwnb3Bdr5H/4FoG9K598mDUPiuY03M3j8/yIcYUta0Nq43PgWDP v7vopEhqDx1eaZi282eQ061IC0d/sI+x1V4Z2UyHkox4VaOynxQ9Vxklx76SYpV3+MMw s32/2cJRt8Io0Fg+OqRMaTTUvAgkqzl4W4bLyRQrYzOrvzKayzGwsSGwOP4sulAcDyEW GIEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BHjgVzV7Rb26jtqSzFnXzOHd9xE+yoT9Z6/lMXe2tq8=; b=cxiLWXUemjl0DBJjdyQpI1qAKq+mhW2EkLojicnu8vRSzvu41g4KeW6nNrf7zlE4aq KB70GfsY8AFws0azh8af2BBlmAAmKbgrrCQgMK95/AgutfBh6PB0jJB6l/8J36Jp3ICN Y43RxnNeIywUBl6Bapx6aqMeQZTDK5JmgWnSKQO+LUwazJXMalw19MFMAbGjYoIJylct HD2hEwqDnwK2aVMTTDG0vN/cG031VcyJjG0Q1WYefkmKLfzbs5obhxNu4Uk5SWQ6axXk 7UZExrNgmi6uM46XKq9a0/Vbsp3DAmE5CK3LZnsi9tXFpksyDbgPV0bQCaNseFSTK5Sf 7qpg== X-Gm-Message-State: AOAM530EqOhw4SHIW8ioDYuwpXQqKlhGpf1W5F2JItPqeT3W7EBbxVHJ lm+m+Z7x20C8+Szy7Dnn2ZOHiN0RHdk= X-Received: by 2002:a05:620a:1198:: with SMTP id b24mr24174340qkk.212.1621781687532; Sun, 23 May 2021 07:54:47 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id t17sm8090977qto.92.2021.05.23.07.54.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 May 2021 07:54:47 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 May 2021 11:54:32 -0300 Message-Id: <20210523145433.5426-2-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210523145433.5426-1-jamrial@gmail.com> References: <20210523145433.5426-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avutil/mem: make ff_fast_malloc() internal to mem.c 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: B9otXdt8VKqR Signed-off-by: James Almer --- libavutil/mem.c | 24 ++++++++++++++++++++++-- libavutil/mem_internal.h | 18 ------------------ 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/libavutil/mem.c b/libavutil/mem.c index c12c24aa90..471b49f8e7 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -510,12 +510,32 @@ void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size) return ptr; } + +static inline void fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc) +{ + void *val; + + memcpy(&val, ptr, sizeof(val)); + if (min_size <= *size) { + av_assert0(val || !min_size); + return; + } + min_size = FFMAX(min_size + min_size / 16 + 32, min_size); + av_freep(ptr); + val = zero_realloc ? av_mallocz(min_size) : av_malloc(min_size); + memcpy(ptr, &val, sizeof(val)); + if (!val) + min_size = 0; + *size = min_size; + return; +} + void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size) { - ff_fast_malloc(ptr, size, min_size, 0); + fast_malloc(ptr, size, min_size, 0); } void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size) { - ff_fast_malloc(ptr, size, min_size, 1); + fast_malloc(ptr, size, min_size, 1); } diff --git a/libavutil/mem_internal.h b/libavutil/mem_internal.h index ee2575c85f..ed846aac52 100644 --- a/libavutil/mem_internal.h +++ b/libavutil/mem_internal.h @@ -136,22 +136,4 @@ # define LOCAL_ALIGNED_32(t, v, ...) E1(LOCAL_ALIGNED_A(32, t, v, __VA_ARGS__,,)) #endif -static inline int ff_fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc) -{ - void *val; - - memcpy(&val, ptr, sizeof(val)); - if (min_size <= *size) { - av_assert0(val || !min_size); - return 0; - } - min_size = FFMAX(min_size + min_size / 16 + 32, min_size); - av_freep(ptr); - val = zero_realloc ? av_mallocz(min_size) : av_malloc(min_size); - memcpy(ptr, &val, sizeof(val)); - if (!val) - min_size = 0; - *size = min_size; - return 1; -} #endif /* AVUTIL_MEM_INTERNAL_H */ From patchwork Sun May 23 14:54:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 27928 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp2188719iof; Sun, 23 May 2021 07:55:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxDOvFCJFH9VvWrxvFKmfXDT6KhkkO3eo4tnuvSIvxy35+rp/1WIZd+bIGnHqu/+ByEnkVT X-Received: by 2002:a17:906:c1ca:: with SMTP id bw10mr19175897ejb.512.1621781718586; Sun, 23 May 2021 07:55:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621781718; cv=none; d=google.com; s=arc-20160816; b=Lo/8wP30I3ij7V5Jd20hMy3l2R6tR5yXCH06KYq6r/AGClVnc2KG/e4o1Hk+3uST97 sVf8GKG/9fK7/yYwgQ4A979wmAepcJzalaD3ZOHFwCqJQWGUGqpXYhlfsYD0kUjdUxbo 7UhOIEb4huzdZV6a9WabEwtnxdCwlcu6Kk/sL7hwjZUKxoqdvS3vZ6k1HHNCr+ELTciB 0BiL4Iff04WZcfwgSlgTKsUYj2YEko53Pr0y/pP8VZh1OtZU9V8a8iCwY3RlPtYJPv/K 3sV1H4l3XcLZQk95uE5+Qp2+4vPl1ttrPvUvmi1SLQWx9/rVFrM1qYHcfLsTzVjv98om 93vA== 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:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=+FbsmybFqFjy6GDE5bzMNfQWflIsSM+xCD8kORxrLOY=; b=gXr+roZACYQzyiFb6t2W5zJmk9nATz5fE9lIAOjfGrR4vv+QEWPHT3xB4FxECx+DKs gW52hG0UEXRZS9KFl+IZ9+GpR3Amr1JURrjJSOmfvblMm/V819i4JPoiU8J26NSK2p/R +YBRyS4ktmT+TRwh4BKcE0svIlltTJG0xYwIchA/y9v6YWfqsO0YVYCGPcaNYAb+0Kdl twVVe5B7uoSlT89rNbjxfSOS7OO2nJrSXLliKns10OIVyc2byRVyhgWKwbey2hjAe/HL FTUM665Pnzvk1eArbFNfLjxj74a2TBiR9CNb+bZJYIg6BZh1Ci10xurEZMcN9ARImSVI YNoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=k1zu5zoB; 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 q19si10215717ejx.661.2021.05.23.07.55.18; Sun, 23 May 2021 07:55:18 -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=20161025 header.b=k1zu5zoB; 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 1B3C16881A9; Sun, 23 May 2021 17:54:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F29E5680C28 for ; Sun, 23 May 2021 17:54:49 +0300 (EEST) Received: by mail-qt1-f176.google.com with SMTP id t17so1126773qta.11 for ; Sun, 23 May 2021 07:54:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=PC984BlsCcXrvNpNNkb26+RNAJphbhYIzSygmBE6NyI=; b=k1zu5zoB904Z0orbilSnAXSWd+JO+aEYc5wYevA80Bu+YJxxVkI3i1Fevf7E743vUF K30R4NvnsSYoahucw3bBvWjYB6UFIrVINwTvz7XPamrloKqU7BCEvq6dbsVLFIgGrV1X wVZkqGorRj9s+rx6rsMBvpy/Ue4zm/QPXYsMn9bqP7OEM+bsUJs4IKuy0q3WMam7eOSf MrsyTsUdBdY9dPUOm4wJMPS6pGaXT78W3bCyB1C5sO8qwWEFB716WelejbMm6BLK7o09 VxCDLcut/o23O42xJgTCvw+baF/6PYCLR3/JoJkuQrhtMvt3wd0wa22cqZ9SCw5cjXGl CktA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PC984BlsCcXrvNpNNkb26+RNAJphbhYIzSygmBE6NyI=; b=cW0qFixsXl7DYIqioexcOcJYEivqi0gknkWCjGVAObpCNDVd03wzjEkme2H+GpSiPt WGt3gXJvgRN51B6qPdx1wxEE39VwnZ1z7bnjZyBIBFWd8ioU+xm0DUyMkapuek8wHaJ2 bT08nm+zjMq+4CCbVQmqjhBx4aod0cjWK9sKk3CT1REAYkU0wEiJh8XWwaYOl/SQXQ9m hTHz9eZPW+i+r2XeLHaCBeGq0zx7QwrmfC500lyjPZSWFO37bnrx3LjIim3PANs6FrbF PuTUhyDaaCs6BSmgopGeSMMhTcPnnY2t5iEGADIY1p6nb1yDO7A0oHbe+sYmuxzls5AU W/3w== X-Gm-Message-State: AOAM5337luMMnTyDZZadXDH8B9DR7RjtSLEc2m6uBCxxan0sn2Yw5q8Y dUML3nvdR3v3+768slZeRftEr2gUIhs= X-Received: by 2002:a05:622a:148a:: with SMTP id t10mr22176066qtx.214.1621781688704; Sun, 23 May 2021 07:54:48 -0700 (PDT) Received: from localhost.localdomain ([191.83.214.167]) by smtp.gmail.com with ESMTPSA id t17sm8090977qto.92.2021.05.23.07.54.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 May 2021 07:54:48 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 May 2021 11:54:33 -0300 Message-Id: <20210523145433.5426-3-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210523145433.5426-1-jamrial@gmail.com> References: <20210523145433.5426-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avutil/mem: check for max_alloc_size in av_fast_malloc() 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: EFCXArcbZgdV This puts av_fast_malloc*() in line with av_fast_realloc(). Signed-off-by: James Almer --- libavutil/mem.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavutil/mem.c b/libavutil/mem.c index 471b49f8e7..1b0e39eb89 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -513,6 +513,7 @@ void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size) static inline void fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc) { + size_t max_size; void *val; memcpy(&val, ptr, sizeof(val)); @@ -520,7 +521,15 @@ static inline void fast_malloc(void *ptr, unsigned int *size, size_t min_size, i av_assert0(val || !min_size); return; } - min_size = FFMAX(min_size + min_size / 16 + 32, min_size); + + max_size = atomic_load_explicit(&max_alloc_size, memory_order_relaxed); + + if (min_size > max_size) { + av_freep(ptr); + *size = 0; + return; + } + min_size = FFMIN(max_size, FFMAX(min_size + min_size / 16 + 32, min_size)); av_freep(ptr); val = zero_realloc ? av_mallocz(min_size) : av_malloc(min_size); memcpy(ptr, &val, sizeof(val));