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 379C349457 for ; Sat, 11 May 2024 19:47:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A591868D0FC; Sat, 11 May 2024 22:47:17 +0300 (EEST) Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A9A4668D2E9 for ; Sat, 11 May 2024 22:47:10 +0300 (EEST) Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36c926b3fc7so12323765ab.1 for ; Sat, 11 May 2024 12:47:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715456829; x=1716061629; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Iv35I8FBUhDIEI1sFDhFIut87t4qWjQXITlyzTqMdbY=; b=KjqQLs6jUeNPPq2l4mqJxXQh5qWvSGdTvyIJvEU3NRK9uOFrDT5dwIdBdqAh3wqo1k yXHP0YuF2tm2+m6+lqa+4Ij6RG4otagSkPfUPJiB/rd8ZqtsvWxQkJS3LsBTi23XnrTn 0U4v4tImKaMF4T//BiNaYctHwE5MAqtUZyEZYGF0u5FWyl4mQc4imx7b6uCSZZ7C80dZ +xc4z8TaORYcH4DhXO+ScCJlyLcVEdqma1qlTDSfaBoI3/YUgfmW1lAPys7mvuS+yo0f TUVeqlgqadC6VoUD7qW6nELOjpnALVfrHb55KEJUMBKAFlUIWRDLquYzMrcuP1Lhmi3P 30Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715456829; x=1716061629; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Iv35I8FBUhDIEI1sFDhFIut87t4qWjQXITlyzTqMdbY=; b=U458uZYF3P7Sk+2pCU0FNd5CslK3/Wp6aMoMwT/3Uik34QM5rvwK65OxBiqAMHZNET jaKQ90rhJc9xYW2d2PqX+8Bog1HWvtsVoGMg8nNxxo+lmdVqhIFz4aT5Qdq1Gjuxy9YN uM3/FKQdQHeVJ9qmIFKYOmJRwTBEKl/dRfON5ZK0OZwecsJ+E9QBKkSmt4zTfWCMlwmV oV1E79URIH/hcrdqr4jh8nYfoZzIPU2q42NmXpYVZHnBrqkH+q3OLoVB14gqHKPLcBTE MmwgonkVfw3hrBRl0by56JLR971swAbTzQmQsfmpSusxeruLr/5kifGGg73xgvLfgf+z VejQ== X-Gm-Message-State: AOJu0Yy+kMRCTYfDYPEQ0NuydhSCEUOUsqTCDjdawXljXsxAkdvCh9Xm uU1Qj0wsJSlQc4qDWCIYIfxzpHMVUORKBE8gyZqFI82H4RVxP62jodQZwA== X-Google-Smtp-Source: AGHT+IEtBRjT/MVn3jpu8jfQ33+Chk7SwN1QfNfb4eFcfZgRFc15J4BkiBSdb4JH69Zn2xaLzrHl4A== X-Received: by 2002:a05:6e02:12ce:b0:36a:2a57:9393 with SMTP id e9e14a558f8ab-36cc144b65dmr71362815ab.3.1715456828570; Sat, 11 May 2024 12:47:08 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-6340b769197sm4424308a12.24.2024.05.11.12.47.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 May 2024 12:47:08 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 May 2024 16:46:56 -0300 Message-ID: <20240511194656.1576-2-jamrial@gmail.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240511194656.1576-1-jamrial@gmail.com> References: <20240511194656.1576-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] checkasm/flacdsp: sanitize lpc arguments 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 signed integer overflows as reported by ubsan. Signed-off-by: James Almer --- tests/checkasm/flacdsp.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/checkasm/flacdsp.c b/tests/checkasm/flacdsp.c index 6561b4ed20..bf25cea39c 100644 --- a/tests/checkasm/flacdsp.c +++ b/tests/checkasm/flacdsp.c @@ -54,9 +54,10 @@ static void check_decorrelate(uint8_t **ref_dst, uint8_t **ref_src, uint8_t **ne bench_new(new_dst, (int32_t **)new_src, channels, BUF_SIZE / sizeof(int32_t), 8); } -static void check_lpc(int pred_order) +static void check_lpc(int pred_order, int bps) { int qlevel = rnd() % 16; + int coeff_prec = rnd() % 16; LOCAL_ALIGNED_16(int32_t, coeffs, [32]); LOCAL_ALIGNED_16(int32_t, dst, [BUF_SIZE]); LOCAL_ALIGNED_16(int32_t, dst0, [BUF_SIZE]); @@ -64,11 +65,13 @@ static void check_lpc(int pred_order) declare_func(void, int32_t *, const int[32], int, int, int); + if (bps <= 16) + coeff_prec = av_clip(coeff_prec, 0, 32 - bps - av_log2(pred_order)); + for (int i = 0; i < 32; i++) - coeffs[i] = rnd(); + coeffs[i] = av_mod_uintp2(rnd(), coeff_prec); for (int i = 0; i < BUF_SIZE; i++) - dst[i] = rnd(); - + dst[i] = rnd() & ((1LL << bps) - 1); memcpy(dst0, dst, BUF_SIZE * sizeof (int32_t)); memcpy(dst1, dst, BUF_SIZE * sizeof (int32_t)); call_ref(dst0, coeffs, pred_order, qlevel, BUF_SIZE); @@ -116,10 +119,10 @@ void checkasm_check_flacdsp(void) for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) if (check_func(h.lpc16, "flac_lpc_16_%d", pred_orders[i])) - check_lpc(pred_orders[i]); + check_lpc(pred_orders[i], 16); for (i = 0; i < FF_ARRAY_ELEMS(pred_orders); i++) if (check_func(h.lpc32, "flac_lpc_32_%d", pred_orders[i])) - check_lpc(pred_orders[i]); + check_lpc(pred_orders[i], 32); report("lpc"); } -- 2.45.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".