mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-29 11:18:50 +02:00
d50d1bba65
slices.Insert(cmd, 1, "-O", "check") writes into cmd's backing array when there is spare capacity (cap(cmd) >= len(cmd)+2). check_cmd points at the shifted array, but cmd's slice header is unchanged: reading cmd[:insertion_point] later returns "-O", "check", ... where the original prefix used to be. run_control_master, forward_remote_control, and the final ssh exec all build their argvs from this corrupted prefix. Repro: share_connections=yes, forward_remote_control=yes, and enough ssh_args to push cmd past Go's slice-growth threshold (kitten ssh -v host does it). With the ControlMaster already up you'll see "Multiplexing command already specified"; otherwise it fails with "Failed to start SSH ControlMaster" and a stray -O check left in the cmdline.