diff options
author | Roland Scheidegger <[email protected]> | 2018-07-04 04:44:17 +0200 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2018-07-09 07:17:29 +0100 |
commit | 817efd89685efc6b5866e09cbdad01c4ff21c737 (patch) | |
tree | e978e5a752ce2b8be158b20d598f766097f9728e /src/gallium/drivers/r600/.dir-locals.el | |
parent | 7c92c7d15162111d2e2deab672a5428db1a2dce3 (diff) |
r600/sb: fix crash in fold_alu_op3
fold_assoc() called from fold_alu_op3() can lower the number of src to 2,
which then leads to an invalid access to n.src[2]->gvalue().
This didn't seem to have caused much harm in the past, but on Fedora 28
it will crash (presumably because -D_GLIBCXX_ASSERTIONS is used, although
with libstdc++ 4.8.5 this didn't do anything, -D_GLIBCXX_DEBUG was
needed to show the issue).
An alternative fix would be to instead call fold_alu_op2() from within
fold_assoc() when the number of src is reduced and return always TRUE
from fold_assoc() in this case, with the only actual difference being
the return value from fold_alu_op3() then. I'm not sure what the return
value actually should be in this case (or whether it even can make a
difference).
https://bugs.freedesktop.org/show_bug.cgi?id=106928
Cc: [email protected]
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/.dir-locals.el')
0 files changed, 0 insertions, 0 deletions