diff --git a/config.def.h b/config.def.h index a5723d6..62a1217 100644 --- a/config.def.h +++ b/config.def.h @@ -57,6 +57,10 @@ static unsigned int tripleclicktimeout = 600; /* alt screens */ int allowaltscreen = 1; +/* allow certain non-interactive (insecure) window operations such as: + setting the clipboard text */ +int allowwindowops = 0; + /* * draw latency range in ms - from new content/keypress/etc until drawing. * within this range, st draws when content stops arriving (idle). mostly it's diff --git a/st.c b/st.c index eabd49a..e32789b 100644 --- a/st.c +++ b/st.c @@ -2015,7 +2015,7 @@ strhandle(void) xsettitle(strescseq.args[1]); return; case 52: - if (narg > 2) { + if (narg > 2 && allowwindowops) { dec = base64dec(strescseq.args[2]); if (dec) { xsetsel(dec); diff --git a/st.h b/st.h index 9208090..4c2059c 100644 --- a/st.h +++ b/st.h @@ -145,6 +145,7 @@ extern char *stty_args; extern char *vtiden; extern wchar_t *worddelimiters; extern int allowaltscreen; +extern int allowwindowops; extern char *termname; extern unsigned int tabspaces; extern unsigned int defaultfg;