diff mbox series

[FFmpeg-devel] checkasm: h264dsp: Avoid out of buffer writes when benchmarking

Message ID 20240521110453.88641-1-martin@martin.st
State Accepted
Commit 6093367147b72c0f3c78a61597a3452f7f0e510e
Headers show
Series [FFmpeg-devel] checkasm: h264dsp: Avoid out of buffer writes when benchmarking | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

Martin Storsjö May 21, 2024, 11:04 a.m. UTC
The loop filters can write before the pointer given to them;
the actual test invocations correctly used an offset, while
the benchmark calls were lacking an offset. Therefore, when
running with benchmarking, these tests could have spurious
failures.
---
 tests/checkasm/h264dsp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Rémi Denis-Courmont May 21, 2024, 11:42 a.m. UTC | #1
Le 21 mai 2024 14:04:53 GMT+03:00, "Martin Storsjö" <martin@martin.st> a écrit :
>The loop filters can write before the pointer given to them;
>the actual test invocations correctly used an offset, while
>the benchmark calls were lacking an offset. Therefore, when
>running with benchmarking, these tests could have spurious
>failures.
>---
> tests/checkasm/h264dsp.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/tests/checkasm/h264dsp.c b/tests/checkasm/h264dsp.c
>index 0cc1f32740..67b8dce53c 100644
>--- a/tests/checkasm/h264dsp.c
>+++ b/tests/checkasm/h264dsp.c
>@@ -362,7 +362,7 @@ static void check_loop_filter(void)
>                                 tc0[j][0], tc0[j][1], tc0[j][2], tc0[j][3]); \
>                         fail();                                         \
>                     }                                                   \
>-                    bench_new(dst1, 32, alphas[j], betas[j], tc0[j]);   \
>+                    bench_new(dst1 + off, 32, alphas[j], betas[j], tc0[j]);\
>                 }                                                       \
>             }                                                           \
>         } while (0)
>@@ -421,7 +421,7 @@ static void check_loop_filter_intra(void)
>                                 j, alphas[j], betas[j]);                \
>                         fail();                                         \
>                     }                                                   \
>-                    bench_new(dst1, 32, alphas[j], betas[j]);           \
>+                    bench_new(dst1 + off, 32, alphas[j], betas[j]);     \
>                 }                                                       \
>             }                                                           \
>         } while (0)

LGTM
diff mbox series

Patch

diff --git a/tests/checkasm/h264dsp.c b/tests/checkasm/h264dsp.c
index 0cc1f32740..67b8dce53c 100644
--- a/tests/checkasm/h264dsp.c
+++ b/tests/checkasm/h264dsp.c
@@ -362,7 +362,7 @@  static void check_loop_filter(void)
                                 tc0[j][0], tc0[j][1], tc0[j][2], tc0[j][3]); \
                         fail();                                         \
                     }                                                   \
-                    bench_new(dst1, 32, alphas[j], betas[j], tc0[j]);   \
+                    bench_new(dst1 + off, 32, alphas[j], betas[j], tc0[j]);\
                 }                                                       \
             }                                                           \
         } while (0)
@@ -421,7 +421,7 @@  static void check_loop_filter_intra(void)
                                 j, alphas[j], betas[j]);                \
                         fail();                                         \
                     }                                                   \
-                    bench_new(dst1, 32, alphas[j], betas[j]);           \
+                    bench_new(dst1 + off, 32, alphas[j], betas[j]);     \
                 }                                                       \
             }                                                           \
         } while (0)