Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
aux/draw: fix memory leak related to ureg_get_tokens()
Indeed, the function nir_to_tgsi() returns an ureg_get_tokens() allocated object which is assigned locally. The ureg_get_tokens() allocated object should be freed. For instance, this issue is triggered with a llvm enabled lima, "piglit/bin/gl-1.0-rendermode-feedback -auto -fbo": Direct leak of 512 byte(s) in 1 object(s) allocated from: #0 0x7faeaa4500 in __interceptor_realloc (/usr/lib64/libasan.so.6+0xa4500) android-rpi#1 0x7fa4a88f1c in tokens_expand ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:239 android-rpi#2 0x7fa4a88f1c in get_tokens ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:262 android-rpi#3 0x7fa4a900f4 in copy_instructions ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2079 #4 0x7fa4a900f4 in ureg_finalize ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2129 #5 0x7fa4a91dfc in ureg_get_tokens ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:2206 #6 0x7fa4b20a2c in nir_to_tgsi_options ../src/gallium/auxiliary/nir/nir_to_tgsi.c:4011 #7 0x7fa4a0c914 in draw_create_vertex_shader ../src/gallium/auxiliary/draw/draw_vs.c:77 Fixes: b5e782f ("aux/draw: use nir_to_tgsi for draw shader in llvm path") Signed-off-by: Patrick Lerda <[email protected]> Reviewed-by: Emma Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21924> (cherry picked from commit 6a8e671)
- Loading branch information