From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2220C47CFD for ; Thu, 18 Jan 2024 15:10:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 20DE768D028; Thu, 18 Jan 2024 17:10:38 +0200 (EET) Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2D58868C991 for ; Thu, 18 Jan 2024 17:10:31 +0200 (EET) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-6db79e11596so731818b3a.0 for ; Thu, 18 Jan 2024 07:10:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705590628; x=1706195428; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=DxBX5R/oyTMhY+r+J2NS0HTwy4xsleymvEHnueulJPU=; b=g2osV2UmF/34jY0sJXvG//xuKu1+u2PYp8WBVJ85iUZQ25QngsEtdEiFo/nTURemlO gloxIe8OzFVs+VN9BRxAYZ6Y8oh8T9EwSwxWiOi6q28uucN/tR/ywxMbUfTF7VXxlhW4 JEyGdItLkIvvkp5+eNzSGBPRCku3wR9otphNr/2mQidJeagtng8XA3nw1HOBTCD+3qRa 3tUWAJGYEvk7Kw1kkfEK47EYp6LpHNFbvFz/eMuCvizlYwPsGJ3LuDmI7GfNnQKQDooC AxGSSkoe9yGzr+tAMJG4lqyYVQHrCdqpxwrR7v3zFGJOGBvcDFY2Bd8Qo+u3JcqaGfit maXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705590628; x=1706195428; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DxBX5R/oyTMhY+r+J2NS0HTwy4xsleymvEHnueulJPU=; b=wVpevNvXaQqa3d8bxdH6WTUo/naruOp/NySCPCfwIglOminHYHHbhU/JT8rrtFvLSS pkJMgGhNGPCYMjscLoMMSN4jUyilezhJj7Py+4cqi2Nx6AyGDVdTEIWqx+lbStHCLIGa 86fiIq6VHog3Pm8LK0jP+W64rL0cPUFZ9Xu+BW6v5EXRo9TJOKp5kT1omD4GJFJerV55 yKA4n/h3Ailz+CqJphPnMlEcWLjp9sIX2FhmASKqVSP7XTZKZM8Yg7lYuJ97Re0FlmYz GKaIZ7SZxskS5vNvVUqJb1Q6iPVIozpyf2gX16/2oosYFO6J6klc2mZMkuAKX8by7JaL x6kg== X-Gm-Message-State: AOJu0YymE9QeVa8gUTnd2UU4Ne6asRu7xyRa4aXHTgjq6IE3gx/Tx8fg ZP/arafIhLeM2hkLaWS+19CJcGdsi2FAPDikzkHm+FuS2FSiV3PpWnLvQbiH X-Google-Smtp-Source: AGHT+IG/pDx+OHFXxZWijzPD73ON5vTiy4Jrrjjpj7NpEoA8ba7E71tISqPKBciqtiaKjmUcUy0pWQ== X-Received: by 2002:a05:6a00:1792:b0:6d9:c201:f887 with SMTP id s18-20020a056a00179200b006d9c201f887mr1430514pfg.1.1705590628124; Thu, 18 Jan 2024 07:10:28 -0800 (PST) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id y14-20020aa7854e000000b006d095553f2asm3419738pfn.81.2024.01.18.07.10.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 07:10:27 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Jan 2024 12:10:15 -0300 Message-ID: <20240118151015.2612-1-jamrial@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/vvcdec: allocate and store structs on their own within the table list 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Fixes "runtime error: member access within misaligned address 0xf00 for type 'struct bar', which requires # byte alignment" errors under GCC ubsan. Signed-off-by: James Almer --- libavcodec/vvc/vvcdec.c | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/libavcodec/vvc/vvcdec.c b/libavcodec/vvc/vvcdec.c index 54ada28124..540a05f8cf 100644 --- a/libavcodec/vvc/vvcdec.c +++ b/libavcodec/vvc/vvcdec.c @@ -55,14 +55,6 @@ typedef struct TabList { l->nb_tabs++; \ } while (0) -static size_t tl_size(const TabList *l) -{ - size_t total = 0; - for (int i = 0; i < l->nb_tabs; i++) - total += l->tabs[i].size; - return total; -} - static void tl_init(TabList *l, const int zero, const int realloc) { l->nb_tabs = 0; @@ -72,32 +64,28 @@ static void tl_init(TabList *l, const int zero, const int realloc) static int tl_free(TabList *l) { - for (int i = 1; i < l->nb_tabs; i++) { - void **p = l->tabs[i].tab; - *p = NULL; - } - av_freep(l->tabs[0].tab); + for (int i = 0; i < l->nb_tabs; i++) + av_freep(l->tabs[i].tab); + return 0; } static int tl_create(TabList *l) { - size_t size = tl_size(l); if (l->realloc) { - uint8_t *p = l->zero ? av_mallocz(size) : av_malloc(size); - if (!p) - return AVERROR(ENOMEM); tl_free(l); - // set pointer for each table for (int i = 0; i < l->nb_tabs; i++) { Tab *t = l->tabs + i; - *t->tab = p; - p += t->size; + *t->tab = l->zero ? av_mallocz(t->size) : av_malloc(t->size); + if (!*t->tab) + return AVERROR(ENOMEM); + } + } else if (l->zero) { + for (int i = 0; i < l->nb_tabs; i++) { + Tab *t = l->tabs + i; + memset(*t->tab, 0, t->size); } - } else { - if (l->zero) - memset(*l->tabs[0].tab, 0, size); } return 0; } -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".