Find a file
Patrick Lerda aa79030505 mesa/main: fix stack overflow related to the new mipmap code
Indeed, the access to the array is done with a 4x multiplier.
The size of the array should be calculated accordingly.

For instance, this issue is triggered on radeonsi with
"piglit/bin/arb_direct_state_access-gettextureimage-formats -auto -fbo":
==3419==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffc31f804b0 at pc 0x7fac7ef81b2d bp 0x7ffc31f803d0 sp 0x7ffc31f803c8
WRITE of size 1 at 0x7ffc31f804b0 thread T0
    #0 0x7fac7ef81b2c in do_span_rgba_unorm8 ../src/mesa/main/mipmap.c:160
    #1 0x7fac7ef83549 in do_row ../src/mesa/main/mipmap.c:258
    #2 0x7fac7ef83986 in make_2d_mipmap ../src/mesa/main/mipmap.c:371
    #3 0x7fac7ef8670b in generate_mipmap_compressed ../src/mesa/main/mipmap.c:1062
    #4 0x7fac7ef8670b in _mesa_generate_mipmap ../src/mesa/main/mipmap.c:1119
    #5 0x7fac7e5472aa in check_gen_mipmap ../src/mesa/main/teximage.c:2910
    #6 0x7fac7e5472aa in check_gen_mipmap ../src/mesa/main/teximage.c:2904
    #7 0x7fac7e5472aa in teximage ../src/mesa/main/teximage.c:3315
    #8 0x7fac7e5472aa in teximage_err ../src/mesa/main/teximage.c:3342
    #9 0x7fac7e550cfa in _mesa_TexImage2D ../src/mesa/main/teximage.c:3413

Address 0x7ffc31f804b0 is located in stack of thread T0 at offset 96 in frame
    #0 0x7fac7ef814ff in do_span_rgba_unorm8 ../src/mesa/main/mipmap.c:132

  This frame has 3 object(s):
    [32, 96) 'result' (line 145) <== Memory access at offset 96 overflows this variable
    [128, 384) 'rowA' (line 144)
    [448, 704) 'rowB' (line 144)

Fixes: dd8fb7139d ("mesa/main: rewrite mipmap generation code")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29572>
2024-06-06 15:06:12 +00:00
.ci-farms Revert "ci: disable Collabora's farm due to maintenance" 2024-06-04 18:17:57 +00:00
.ci-farms-disabled Revert "ci: disable Collabora's farm due to maintenance" 2024-06-04 18:17:57 +00:00
.github/workflows add zink to macos ci 2022-11-22 19:04:13 +00:00
.gitlab gitlab: Reference hang debugging documenttion 2024-05-16 09:47:53 +00:00
.gitlab-ci Uprev Piglit to cf8daaf5ba90fc9b8a0e144355026e2a14c79944 2024-06-03 06:58:28 +00:00
android nouveau: import libdrm_nouveau 2024-03-13 15:21:07 +00:00
bin ci: fix stress counter in run'n'monitor 2024-05-27 20:30:36 +00:00
build-support meson: move tsan-blacklist.txt to build-support with the other build support files 2024-05-01 07:05:12 +00:00
docs docs: update calendar for 24.1.1 2024-06-05 22:22:04 +00:00
include ac: add gfx12 DCC shared code 2024-06-06 01:01:46 +00:00
src mesa/main: fix stack overflow related to the new mipmap code 2024-06-06 15:06:12 +00:00
subprojects subprojects: uprev perfetto to v45.0 2024-05-21 20:02:00 +00:00
.clang-format meson: enable the clang-format target 2023-05-29 11:57:08 +00:00
.clang-format-ignore ci: enforce formatting for RADV & ACO 2023-06-16 19:59:52 +00:00
.clang-format-include teflon: Initial commit 2024-01-24 10:02:10 +00:00
.dir-locals.el
.editorconfig glsl: Fixes ident issue in glsl_parser.yy and update editorconfig for it 2022-12-16 19:02:17 +00:00
.git-blame-ignore-revs freedreno: Add reformatting commits to .git-blame-ignore-revs 2023-09-22 02:07:36 +00:00
.gitattributes gitlab: Highlight .cl as C 2023-11-02 11:37:46 +00:00
.gitignore .gitignore: add .cache folder 2024-05-13 14:32:12 +00:00
.gitlab-ci.yml ci/image-tags: rename DEBIAN_X86_64_TEST_*_TAG to drop the x86 mention 2024-05-23 06:00:50 +02:00
.graphqlrc.yml ci/bin: Add utility to find jobs dependencies 2022-08-03 23:10:37 +00:00
.mailmap mailmap: update my email 2024-06-01 18:25:28 +00:00
.mr-label-maker.yml mr-label-maker: label src/vulkan/wsi/ as wsi 2024-05-24 19:12:49 +02:00
CODEOWNERS CODEOWNERS: update Imagination maintainers 2024-01-19 10:26:15 +00:00
meson.build build/amd: add amd-use-llvm build option 2024-05-30 19:05:00 +00:00
meson_options.txt build/amd: add amd-use-llvm build option 2024-05-30 19:05:00 +00:00
README.rst README: update links to our own docs 2024-05-15 17:13:10 +00:00
VERSION VERSION: bump to 20.2 2024-04-24 19:51:59 +00:00

`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library
======================================================


Source
------

This repository lives at https://gitlab.freedesktop.org/mesa/mesa.
Other repositories are likely forks, and code found there is not supported.


Build & install
---------------

You can find more information in our documentation (`docs/install.rst
<https://docs.mesa3d.org/install.html>`_), but the recommended way is to use
Meson (`docs/meson.rst <https://docs.mesa3d.org/meson.html>`_):

.. code-block:: sh

  $ mkdir build
  $ cd build
  $ meson ..
  $ sudo ninja install


Support
-------

Many Mesa devs hang on IRC; if you're not sure which channel is
appropriate, you should ask your question on `OFTC's #dri-devel
<irc://irc.oftc.net/dri-devel>`_, someone will redirect you if
necessary.
Remember that not everyone is in the same timezone as you, so it might
take a while before someone qualified sees your question.
To figure out who you're talking to, or which nick to ping for your
question, check out `Who's Who on IRC
<https://dri.freedesktop.org/wiki/WhosWho/>`_.

The next best option is to ask your question in an email to the
mailing lists: `mesa-dev\@lists.freedesktop.org
<https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_


Bug reports
-----------

If you think something isn't working properly, please file a bug report
(`docs/bugs.rst <https://docs.mesa3d.org/bugs.html>`_).


Contributing
------------

Contributions are welcome, and step-by-step instructions can be found in our
documentation (`docs/submittingpatches.rst
<https://docs.mesa3d.org/submittingpatches.html>`_).

Note that Mesa uses gitlab for patches submission, review and discussions.