From a8e4ee2f2b4392e959b31c1d079166e245a401ba Mon Sep 17 00:00:00 2001 From: Gregory Anders <8965202+gpanders@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:33:16 -0600 Subject: fix(defaults): validate 'channel' before responding to OSC request (#27594) Validate the channel number before responding to an OSC 10/11 request. When used with nvim_open_term, the channel number is unset (since there is no process on the other side of the PTY). --- runtime/lua/vim/_defaults.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua index 32534a89b4..7cece41ed3 100644 --- a/runtime/lua/vim/_defaults.lua +++ b/runtime/lua/vim/_defaults.lua @@ -143,6 +143,10 @@ do group = nvim_terminal_augroup, desc = 'Respond to OSC foreground/background color requests', callback = function(args) + local channel = vim.bo[args.buf].channel + if channel == 0 then + return + end local fg_request = args.data == '\027]10;?' local bg_request = args.data == '\027]11;?' if fg_request or bg_request then @@ -157,7 +161,6 @@ do end local command = fg_request and 10 or 11 local data = string.format('\027]%d;rgb:%04x/%04x/%04x\007', command, red, green, blue) - local channel = vim.bo[args.buf].channel vim.api.nvim_chan_send(channel, data) end end, -- cgit