Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unaligned access UB in array_checksum_generic* routines #391

Closed
matoro opened this issue Jan 31, 2024 · 4 comments
Closed

Unaligned access UB in array_checksum_generic* routines #391

matoro opened this issue Jan 31, 2024 · 4 comments

Comments

@matoro
Copy link
Contributor

matoro commented Jan 31, 2024

Hi, I've identified an instance of unaligned access UB by running the test suite on a platform on which all unaligned access is fatal (SPARC). I confirmed the UB with gcc UBSAN on x86_64.

This codepath is covered in most of the test suite so I just picked an arbitrary one to demonstrate. This is run against latest master.

PASS: kvazaar_tests
FAIL: test_external_symbols.sh
PASS: test_invalid_input.sh
FAIL: test_smp.sh
FAIL: test_interlace.sh
FAIL: test_pu_depth_constraints.sh
FAIL: test_intra.sh
FAIL: test_mv_constraint.sh
FAIL: test_tools.sh
FAIL: test_rate_control.sh
FAIL: test_owf_wpp_tiles.sh
FAIL: test_gop.sh
FAIL: test_slices.sh
PASS: test_weird_shapes.sh
============================================================================
Testsuite summary for kvazaar 2.3.0
============================================================================
# TOTAL: 14
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  11
# XPASS: 0
# ERROR: 0

Here's the gdb backtrace:

$ ffmpeg -f lavfi -i mandelbrot=size=264x130 -vframes 10 -pix_fmt yuv420p -f yuv4mpegpipe /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.uMKtvMbuhs
ffmpeg version 6.0.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 13 (Gentoo 13.2.1_p20240113-r1 p12)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --docdir=/usr/share/doc/ffmpeg-6.0.1-r2/html --mandir=/usr/share/man --enable-shared --cc=sparc64-unknown-linux-gnu-gcc --cxx=sparc64-unknown-linux-gnu-g++ --ar=sparc64-unknown-linux-gnu-ar --nm=sparc64-unknown-linux-gnu-nm --strip=sparc64-unknown-linux-gnu-strip --ranlib=sparc64-unknown-linux-gnu-ranlib --pkg-config=sparc64-unknown-linux-gnu-pkg-config --optflags='-O2 -mcpu=ultrasparc -pipe' --disable-static --enable-avfilter --disable-stripping --disable-optimizations --disable-libcelt --disable-indev=v4l2 --disable-outdev=v4l2 --disable-indev=alsa --disable-indev=oss --disable-indev=jack --disable-indev=sndio --disable-outdev=alsa --disable-outdev=oss --disable-outdev=sndio --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-gnutls --disable-gmp --enable-gpl --disable-hardcoded-tables --enable-iconv --disable-libxml2 --disable-lzma --enable-network --disable-opencl --disable-openssl --enable-postproc --disable-libsmbclient --disable-ffplay --disable-sdl2 --disable-vaapi --disable-vdpau --disable-vulkan --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-opengl --disable-libv4l2 --disable-libpulse --disable-libdrm --disable-libjack --disable-libopencore-amrwb--disable-libopencore-amrnb --disable-libcodec2 --disable-libdav1d --disable-libfdk-aac --disable-libopenjpeg --disable-libjxl --disable-libbluray --disable-libgme --disable-libgsm --disable-libaribb24 --disable-mmal --disable-libmodplug --disable-libopus --disable-libvpl --disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex --disable-libsrt --disable-librsvg --disable-ffnvcodec --disable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b --disable-chromaprint --disable-cuda-llvm --disable-libflite --disable-frei0r --disable-libvmaf --disable-libfribidi --disable-fontconfig --disable-ladspa --disable-lcms2 --disable-libass --disable-libplacebo --disable-libtesseract --disable-lv2 --disable-libfreetype --disable-libvidstab --disable-librubberband --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads --disable-amf --disable-libvo-amrwbenc --disable-libkvazaar --disable-libaom --disable-libmp3lame --disable-libopenh264 --disable-librav1e --disable-libsnappy --disable-libsvtav1 --disable-libtheora --disable-libtwolame --disable-libwebp --disable-libx264 --disable-libx265 --disable-libxvid --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-amd3dnow --disableamd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3 --disable-fma4 --disable-mmx --disable-mmxext --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-xop --enable-pic --cpu=ultrasparc --disable-doc --disable-htmlpages --enable-manpages
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, lavfi, from 'mandelbrot=size=264x130':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: wrapped_avframe, 0bgr, 264x130 [SAR 1:1 DAR 132:65], 25 fps, 25 tbr, 25 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (wrapped_avframe (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to '/var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.uMKtvMbuhs':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: wrapped_avframe, yuv420p(tv, progressive), 264x130 [SAR 1:1 DAR 132:65], q=2-31, 200 kb/s, 25 fps, 25 tbn
    Metadata:
      encoder         : Lavc60.3.100 wrapped_avframe
frame=   10 fps=0.0 q=-0.0 Lsize=     503kB time=00:00:00.36 bitrate=11443.1kbits/s speed=4.92x
video:5kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 10627.875000%
$ LD_LIBRARY_PATH=../src/.libs gdb -q --args ../src/.libs/kvazaar -i /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.uMKtvMbuhs --input-res=264x130 -o /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.cXkpaQi3vV -p0 --threads=2 --wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3 --gop=8 -p0 --owf=1
Reading symbols from ../src/.libs/kvazaar...
(gdb) r
Starting program: /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999-.sparc64/src/.libs/kvazaar -i /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.uMKtvMbuhs --input-res=264x130 -o /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.cXkpaQi3vV -p0 --threads=2 --wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3 --gop=8 -p0 --owf=1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Available: no SIMD optimizations
In use: no SIMD optimizations
[New Thread 0xfff800010140b8c0 (LWP 5597)]
[New Thread 0xfff8000101c0d8c0 (LWP 5598)]
Input: /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.uMKtvMbuhs, output: /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.cXkpaQi3vV
  Video size: 264x136 (input=264x130)
[New Thread 0xfff800010240f8c0 (LWP 5599)]

Thread 2 "kvazaar" received signal SIGBUS, Bus error.
[Switching to Thread 0xfff800010140b8c0 (LWP 5597)]
array_checksum_generic8 (
    data=0x1000027cfa0 '\250' <repeats 12 times>, "\243\243\243\243\244\244\243\242\236\236\236\236\234\234\234\234\233\233\233\233\227\227\227\227\225\225\225\225\222\223\223\224\222\222\222\222\222\222\221\216\214\213\212\214\214\213\212\212\212\211\211\211\206\206\207\207\206\206\206\205\205\204\203\202\201\201\201\201\202\200\177~~|||}~~}~\177\177\177\177\177\200\201\201\201\203\203\203\204\205\206\206\206\206\207\210\210\211\211\212\212\212\212\213\213\214\214\215\216\217\217\221\221\221\221\221\221\221\221\224\224\224\224\225\225\225\225\230\230\230\230\232\232\232\232\233\233\233\233\232\232\232\232\234\234\234\234\235\235\235\235\233\233\233\233\230\230\230\230\224\224\224\224\224\224\221\217\216\215\217\216\215\214\214\214\213\213\212\211\207\210\210\207"..., height=68, width=132, stride=132, checksum_out=0xfff800010140a9e8 "", 
    bitdepth=8 '\b') at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/strategies/generic/nal-generic.c:163
163           const uint64_t cksumbytes = (*((uint64_t*)(&data[(y * stride) + x]))) ^ mask;
(gdb) l
158
159       for (y = 0; y < height; ++y) {
160         for (xp = 0; xp < width/8; ++xp) {
161           const int x = xp * 8;
162           const uint64_t mask = ckmap[(xp&31)+32*(y&255)] ^ ((uint64_t)((x >> 8) ^ (y >> 8)) * 0x101010101010101);
163           const uint64_t cksumbytes = (*((uint64_t*)(&data[(y * stride) + x]))) ^ mask;
164           checksum += ((cksumbytes >> 56) & 0xff) + ((cksumbytes >> 48) & 0xff) + ((cksumbytes >> 40) & 0xff) + ((cksumbytes >> 32) & 0xff) + ((cksumbytes >> 24) & 0xff) + ((cksumbytes >> 16) & 0xff) + ((cksumbytes >> 8) & 0xff) + (cksumbytes & 0xff);
165         }
166         for (x = xp*8; x < width; ++x) {
167           uint8_t mask = (uint8_t)((x & 0xff) ^ (y & 0xff) ^ (x >> 8) ^ (y >> 8));
(gdb) bt full
#0  array_checksum_generic8 (
    data=0x1000027cfa0 '\250' <repeats 12 times>, "\243\243\243\243\244\244\243\242\236\236\236\236\234\234\234\234\233\233\233\233\227\227\227\227\225\225\225\225\222\223\223\224\222\222\222\222\222\222\221\216\214\213\212\214\214\213\212\212\212\211\211\211\206\206\207\207\206\206\206\205\205\204\203\202\201\201\201\201\202\200\177~~|||}~~}~\177\177\177\177\177\200\201\201\201\203\203\203\204\205\206\206\206\206\207\210\210\211\211\212\212\212\212\213\213\214\214\215\216\217\217\221\221\221\221\221\221\221\221\224\224\224\224\225\225\225\225\230\230\230\230\232\232\232\232\233\233\233\233\232\232\232\232\234\234\234\234\235\235\235\235\233\233\233\233\230\230\230\230\224\224\224\224\224\224\221\217\216\215\217\216\215\214\214\214\213\213\212\211\207\210\210\207"..., height=68, width=132, stride=132, checksum_out=0xfff800010140a9e8 "", 
    bitdepth=8 '\b') at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/strategies/generic/nal-generic.c:163
        x = 0
        mask = 72060901246895878
        cksumbytes = 17578383840357118448
        checksum = 22343
        y = 1
        x = 132
        xp = 0
        ckmap_initialized = 1 '\001'
        ckmap = {283686952306183, 579005069656919567, 1157726452361532951, 1736447835066146335, 2315169217770759719, 2893890600475373103, 
          3472611983179986487, 4051333365884599871, 4630054748589213255, 5208776131293826639, 5787497513998440023, 6366218896703053407, 
          6944940279407666791, 7523661662112280175, 8102383044816893559, 8681104427521506943, 9259825810226120327, 9838547192930733711, 
          10417268575635347095, 10995989958339960479, 11574711341044573863, 12153432723749187247, 12732154106453800631, 13310875489158414015, 
          13889596871863027399, 14468318254567640783, 15047039637272254167, 15625761019976867551, 16204482402681480935, 16783203785386094319, 
          17361925168090707703, 17940646550795321087, 72060901246895878, 650782283951509262, 1229503666656122646, 1808225049360736030, 
          2386946432065349414, 2965667814769962798, 3544389197474576182, 4123110580179189566, 4701831962883802950, 5280553345588416334, 
          5859274728293029718, 6437996110997643102, 7016717493702256486, 7595438876406869870, 8174160259111483254, 8752881641816096638, 
          9331603024520710022, 9910324407225323406, 10489045789929936790, 11067767172634550174, 11646488555339163558, 12225209938043776942, 
          12803931320748390326, 13382652703453003710, 13961374086157617094, 14540095468862230478, 15118816851566843862, 15697538234271457246, 
          16276259616976070630, 16854980999680684014, 17433702382385297398, 18012423765089910782, 144959617402078213, 723681000106691597, 
          1302402382811304981, 1881123765515918365, 2459845148220531749, 3038566530925145133, 3617287913629758517, 4196009296334371901, 
          4774730679038985285, 5353452061743598669, 5932173444448212053, 6510894827152825437, 7089616209857438821, 7668337592562052205, 
          8247058975266665589, 8825780357971278973, 9404501740675892357, 9983223123380505741, 10561944506085119125, 11140665888789732509, 
          11719387271494345893, 12298108654198959277, 12876830036903572661, 13455551419608186045, 14034272802312799429, 14612994185017412813, 
          15191715567722026197, 15770436950426639581, 16349158333131252965, 16927879715835866349, 17506601098540479733, 18085322481245093117, 
          216736831696667908, 795458214401281292, 1374179597105894676, 1952900979810508060, 2531622362515121444, 3110343745219734828, 
          3689065127924348212, 4267786510628961596, 4846507893333574980, 5425229276038188364, 6003950658742801748, 6582672041447415132, 
          7161393424152028516, 7740114806856641900, 8318836189561255284, 8897557572265868668, 9476278954970482052, 10055000337675095436, 
          10633721720379708820, 11212443103084322204, 11791164485788935588, 12369885868493548972, 12948607251198162356, 13527328633902775740, 
          14106050016607389124, 14684771399312002508, 15263492782016615892, 15842214164721229276, 16420935547425842660, 16999656930130456044, 
          17578378312835069428, 18157099695539682812, 289644378169868803, 868365760874482187, 1447087143579095571, 2025808526283708955, 
          2604529908988322339, 3183251291692935723, 3761972674397549107, 4340694057102162491, 4919415439806775875, 5498136822511389259, 
          6076858205216002643, 6655579587920616027, 7234300970625229411, 7813022353329842795, 8391743736034456179, 8970465118739069563, 
          9549186501443682947, 10127907884148296331, 10706629266852909715, 11285350649557523099, 11864072032262136483, 12442793414966749867, 
          13021514797671363251, 13600236180375976635, 14178957563080590019, 14757678945785203403, 15336400328489816787, 15915121711194430171, 
          16493843093899043555, 17072564476603656939, 17651285859308270323, 18230007242012883707, 361421592464458498, 940142975169071882, 
          1518864357873685266, 2097585740578298650, 2676307123282912034, 3255028505987525418, 3833749888692138802, 4412471271396752186, 
          4991192654101365570, 5569914036805978954, 6148635419510592338, 6727356802215205722, 7306078184919819106, 7884799567624432490, 
          8463520950329045874, 9042242333033659258, 9620963715738272642, 10199685098442886026, 10778406481147499410, 11357127863852112794, 
          11935849246556726178, 12514570629261339562, 13093292011965952946, 13672013394670566330, 14250734777375179714, 14829456160079793098, 
          15408177542784406482, 15986898925489019866, 16565620308193633250, 17144341690898246634, 17723063073602860018, 18301784456307473402, 
          434320308619640833, 1013041691324254217, 1591763074028867601, 2170484456733480985, 2749205839438094369, 3327927222142707753, 
          3906648604847321137, 4485369987551934521...}
        __PRETTY_FUNCTION__ = <optimized out>
#1  0xfff8000100359b34 in kvz_image_checksum (im=0x10000274250, checksum_out=0xfff800010140a9d8, bitdepth=8 '\b')
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/nal.c:83
No locals.
#2  0xfff8000100335900 in add_checksum (state=0x10000267cd0)
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/encoder_state-bitstream.c:977
        stream = 0x10000267d30
        frame = 0x10000268f60
        checksum = {"\000I\000-\000&\250\360\001\000\001\000\000&}0", "\000\000\000\000\000\000\000\000\377\000\000\000\000\000\000", 
          '\000' <repeats 15 times>}
        num_colors = 3
        __PRETTY_FUNCTION__ = "add_checksum"
#3  0xfff8000100335f80 in encoder_state_write_bitstream_main (state=0x10000267cd0)
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/encoder_state-bitstream.c:1100
        encoder = 0x100002037c0
        stream = 0x10000267d30
        curpos = 0
        newpos = 0
#4  0xfff8000100336130 in kvz_encoder_state_write_bitstream (state=0x10000267cd0)
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/encoder_state-bitstream.c:1125
        __PRETTY_FUNCTION__ = "kvz_encoder_state_write_bitstream"
#5  0xfff80001003361e4 in kvz_encoder_state_worker_write_bitstream (opaque=0x10000267cd0)
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/encoder_state-bitstream.c:1140
No locals.
#6  0xfff80001003876d0 in threadqueue_worker (threadqueue_opaque=0x10000205300)
    at /var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/threadqueue.c:300
        job = 0x10000295960
        num_new_jobs = 1
        threadqueue = 0x10000205300
        __PRETTY_FUNCTION__ = "threadqueue_worker"

Then I confirmed this by compiling on x86_64 with -fsanitize=undefined. I ran with --no-cpuid in order to ensure it also took the generic implementation rather than AVX2.

$ LD_LIBRARY_PATH=../src/.libs ../src/.libs/kvazaar -i /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.QTcLN2ZasY --input-res=264x130 -o /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.6niFExIZiX -p0 --threads=2 --wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3 --gop=8 -p0 --owf=1 --no-cpuid
Compiled: INTEL, flags: MMX SSE SSE2
Detected: INTEL, flags:
Available: no SIMD optimizations
In use: no SIMD optimizations
Input: /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.QTcLN2ZasY, output: /var/tmp/portage/media-libs/kvazaar-9999/temp/tmp.6niFExIZiX
  Video size: 264x136 (input=264x130)
/var/tmp/portage/media-libs/kvazaar-9999/work/kvazaar-9999/src/strategies/generic/nal-generic.c:163:36: runtime error: load of misaligned address 0x64c0c629d094 for type 'uint64_t', which requires 8 byte alignment
0x64c0c629d094: note: pointer points here
  92 92 92 92 93 93 93 93  95 95 95 95 96 96 96 96  98 98 98 98 98 98 98 98  9a 9a 9a 9a 9b 9b 9b 9b
              ^ 
POC    0 QP 20 AVG QP 20.0 (I-frame)      44840 bits PSNR Y 47.4157 U 45.9016 V 45.7569
POC    8 QP 22 AVG QP 21.0 (P-frame)      43744 bits PSNR Y 44.0144 U 41.2758 V 40.8408 [L0 0 ] [L1 ]
POC    4 QP 25 AVG QP 22.3 (B-frame)      22224 bits PSNR Y 43.2990 U 39.8945 V 39.2482 [L0 0 ] [L1 8 ]
POC    2 QP 26 AVG QP 23.2 (B-frame)      15208 bits PSNR Y 45.1739 U 39.2203 V 38.8090 [L0 0 ] [L1 4 8 ]
POC    1 QP 30 AVG QP 24.6 (B-frame)       9304 bits PSNR Y 44.7293 U 37.1138 V 36.6914 [L0 0 ] [L1 2 4 8 ]
POC    3 QP 30 AVG QP 25.5 (B-frame)      11136 bits PSNR Y 41.9728 U 36.9392 V 36.4352 [L0 2 0 ] [L1 4 8 ]
POC    6 QP 26 AVG QP 25.6 (B-frame)      20480 bits PSNR Y 42.2327 U 38.8909 V 38.2602 [L0 4 0 ] [L1 8 ]
POC    5 QP 30 AVG QP 26.1 (B-frame)      12280 bits PSNR Y 40.8405 U 36.5652 V 36.0216 [L0 4 0 ] [L1 6 8 ]
POC    7 QP 30 AVG QP 26.6 (B-frame)      12504 bits PSNR Y 40.3560 U 36.7962 V 36.0309 [L0 6 4 0 ] [L1 8 ]
POC    9 QP 30 AVG QP 26.9 (P-frame)      13752 bits PSNR Y 39.4280 U 36.6126 V 36.0105 [L0 8 ] [L1 ]
 Processed 10 frames,     205472 bits AVG PSNR Y 42.9462 U 38.9210 V 38.4105
 Total CPU time: 1.250 s.
 Encoding time: 1.248 s.
 Encoding wall time: 0.703 s.
 Encoding CPU usage: 177.45%
 FPS: 14.22
 Bitrate: 0.490 Mbps
 AVG QP: 26.9

The backtrace is just for following the codepath, but the important thing is that this is undefined behavior on all platforms, not just SPARC. This is not a platform-specific bug.

@Jovasa
Copy link
Member

Jovasa commented Feb 1, 2024

Should be fixed with c6f2ba4

@matoro
Copy link
Contributor Author

matoro commented Feb 1, 2024

Should be fixed with c6f2ba4

Is the same thing needed for array_checksum_generic4 ?

@Jovasa
Copy link
Member

Jovasa commented Feb 1, 2024

Should be fixed with c6f2ba4

Is the same thing needed for array_checksum_generic4 ?

It shouldn't, since the encoder will internally pad the width to be divisible by 8. The issue only appears for odd chroma rows, when the width is not divisible by 16, because the chroma stride is half of the width. Therefore, as previously stated the width is always divisible by four and the array_checksum_generic4 should not have alignment issues.

@matoro
Copy link
Contributor Author

matoro commented Feb 1, 2024

Confirmed that fixes the issue, thanks!

@matoro matoro closed this as completed Feb 1, 2024
matoro added a commit to matoro/gentoo that referenced this issue Mar 1, 2024
Includes two new backports for remaining missing arches (x86 + sparc).

See: ultravideo/kvazaar#392
See: ultravideo/kvazaar#391
Bug: https://bugs.gentoo.org/902217
Signed-off-by: Matoro Mahri <matoro_gentoo@matoro.tk>
gentoo-bot pushed a commit to gentoo/gentoo that referenced this issue Mar 8, 2024
Includes two new backports for remaining missing arches (x86 + sparc).

See: ultravideo/kvazaar#392
See: ultravideo/kvazaar#391
Bug: https://bugs.gentoo.org/902217
Signed-off-by: Matoro Mahri <matoro_gentoo@matoro.tk>
Closes: #35584
Signed-off-by: Sam James <sam@gentoo.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants