]> Sergey Matveev's repositories - st.git/commitdiff
Fix core in multi-line selection on OpenBSD
authorMaurice Quennet <mjq@gmx.net>
Sat, 21 Sep 2013 21:33:56 +0000 (23:33 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Mon, 23 Sep 2013 17:26:24 +0000 (19:26 +0200)
OpenBSD 5.3 amd64 release version with the most current st
version from git, crash and dump core when selecting multiple
lines whith the cursor.  This happens, because on line 964
of st.c (gp-1)->mode is accessed, although gp is still
pointing at the beginning of the array term.line[y] (see
line 939 for initialization of gp).

st.c

diff --git a/st.c b/st.c
index df58e9e2962977ddc681f0a3909dc0a0db62a317..c3a04c5b0335cbf4ffbd8891c29c012f34c1ceba 100644 (file)
--- a/st.c
+++ b/st.c
@@ -962,7 +962,7 @@ selcopy(void) {
                         * st.
                         * FIXME: Fix the computer world.
                         */
-                       if(y < sel.ne.y && !((gp-1)->mode & ATTR_WRAP))
+                       if(y < sel.ne.y && x > 0 && !((gp-1)->mode & ATTR_WRAP))
                                *ptr++ = '\n';
 
                        /*