[FFmpeg-devel] [PATCH v2 3/4] checkasm/sw_rgb: add tests for yuv2packed{1, 2, X}

Michael Niedermayer michael at niedermayer.cc
Fri Jan 10 01:27:44 EET 2025


On Fri, Dec 20, 2024 at 01:54:30PM +0100, Niklas Haas wrote:
> From: Niklas Haas <git at haasn.dev>
> 
> Signed-off-by: Niklas Haas <git at haasn.dev>
> Sponsored-by: Sovereign Tech Fund
> ---
>  tests/checkasm/sw_rgb.c | 308 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 308 insertions(+)

This seems to have some issue: (the code in git) if run under asan, it works fine otherwise

TEST    checkasm-sw_rgb
./tests/fate-run.sh fate-checkasm-sw_rgb "" "" "ffmpeg" 'run tests/checkasm/checkasm --test=sw_rgb' 'null' '' '' '1' '' '' '' '' '' '' '' '' '' ''
 tests/checkasm/checkasm --test=sw_rgb
Test checkasm-sw_rgb failed. Look at tests/data/fate/checkasm-sw_rgb.err for details.
checkasm: using random seed 486148533
=================================================================
==3872252==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff71741d40 at pc 0x00000073c0d8 bp 0x7fff71740b70 sp 0x7fff71740b68
READ of size 4 at 0x7fff71741d40 thread T0
    #0 0x73c0d7 in check_yuv2packed1 tests/checkasm/sw_rgb.c:530:31
    #1 0x73346e in checkasm_check_sw_rgb tests/checkasm/sw_rgb.c:802:5
    #2 0x677b1c in check_cpu_flag tests/checkasm/checkasm.c:823:13
    #3 0x67772d in main tests/checkasm/checkasm.c:1009:5
    #4 0x7fc6dee7f082 in __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:308:16
    #5 0x5b4ead in _start (tests/checkasm/checkasm+0x5b4ead)

Address 0x7fff71741d40 is located in stack of thread T0 at offset 4320 in frame
    #0 0x73ae1f in check_yuv2packed1 tests/checkasm/sw_rgb.c:494

  This frame has 8 object(s):
    [32, 48) 'chru' (line 507)
    [64, 80) 'chrv' (line 508)
    [96, 2144) 'la_src_y' (line 511)
    [2272, 4320) 'la_src_u' (line 512) <== Memory access at offset 4320 overflows this variable
    [4448, 6496) 'la_src_v' (line 513)
    [6624, 8672) 'la_src_a' (line 514)
    [8800, 16992) 'la_dst0' (line 516)
    [17248, 25440) 'la_dst1' (line 517)
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow tests/checkasm/sw_rgb.c:530:31 in check_yuv2packed1
Shadow bytes around the buggy address:
  0x10006e2e0350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e0360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e0380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e0390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10006e2e03a0: 00 00 00 00 00 00 00 00[f2]f2 f2 f2 f2 f2 f2 f2
  0x10006e2e03b0: f2 f2 f2 f2 f2 f2 f2 f2 00 00 00 00 00 00 00 00
  0x10006e2e03c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e03d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e03e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10006e2e03f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==3872252==ABORTING
threads=1
make: *** [tests/Makefile:311: fate-checkasm-sw_rgb] Error 1



[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250110/668cfc4d/attachment.sig>


More information about the ffmpeg-devel mailing list