aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/provider/python.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-07-20 21:11:43 +0800
committerGitHub <noreply@github.com>2025-07-20 21:11:43 +0800
commitb91613f42c33b2dd39013c8dca8c1efed7ac0986 (patch)
tree59b3e117bb374ab0bf3c5408b71eddfe80156121 /runtime/lua/vim/provider/python.lua
parent14cafbcc853fb1659a643e64c6bcfec8cc30d347 (diff)
downloadrneovim-b91613f42c33b2dd39013c8dca8c1efed7ac0986.tar.gz
rneovim-b91613f42c33b2dd39013c8dca8c1efed7ac0986.tar.bz2
rneovim-b91613f42c33b2dd39013c8dca8c1efed7ac0986.zip
vim-patch:9.1.1567: crash when using inline diff mode (#35005)
Problem: Crash when using inline diff mode (Ilya Grigoriev) Solution: Set tp_diffbuf to NULL when skipping a diff block (Yee Cheng Chin). Fix an array out of bounds crash when using diffopt+=inline:char when 4 or more buffers are being diff'ed. This happens when one of the blocks is empty. The inline highlight logic skips using that buffer's block, but when another buffer is used later and calls diff_read() to merge the diff blocks together, it could erroneously consider the empty block's diff info which has not been initialized, leaving to diff numbers that are invalid. Later on the diff num is used without bounds checking which leads to the crash. Fix this by making sure to unset tp_diffbuf to NULL when we skip a block, so diff_read() will not consider this buffer to be used within inline diff. Also, add more bounds checking just to be safe. closes: vim/vim#17805 https://github.com/vim/vim/commit/c8b99e2d139cf72c567892e44939f2719f703fa8 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
Diffstat (limited to 'runtime/lua/vim/provider/python.lua')
0 files changed, 0 insertions, 0 deletions