aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2019-11-14 10:46:05 +0100
committerSören Tempel <soeren+git@soeren-tempel.net>2019-11-14 10:52:15 +0100
commit967fec19d05fd7513735f54c0da3a49ef6a11e3d (patch)
treeaa6c5b8af9b134b23265c8e1c7edf69950776e9c
parent9a4b8f04dafaa8ac635ac285f1ea3123ef510f93 (diff)
downloadalpine_aports-967fec19d05fd7513735f54c0da3a49ef6a11e3d.tar.bz2
alpine_aports-967fec19d05fd7513735f54c0da3a49ef6a11e3d.tar.xz
alpine_aports-967fec19d05fd7513735f54c0da3a49ef6a11e3d.zip
main/libedit: backport fix for segfault in one-line terminals
See: https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54654
-rw-r--r--main/libedit/APKBUILD8
-rw-r--r--main/libedit/fix-segfault-54654.patch30
2 files changed, 35 insertions, 3 deletions
diff --git a/main/libedit/APKBUILD b/main/libedit/APKBUILD
index 657d06e7c3..ddec9c2c71 100644
--- a/main/libedit/APKBUILD
+++ b/main/libedit/APKBUILD
@@ -2,7 +2,7 @@
2pkgname=libedit 2pkgname=libedit
3pkgver=20191025.3.1 3pkgver=20191025.3.1
4_ver=${pkgver/./-} 4_ver=${pkgver/./-}
5pkgrel=0 5pkgrel=1
6pkgdesc="BSD line editing library" 6pkgdesc="BSD line editing library"
7url="https://www.thrysoee.dk/editline" 7url="https://www.thrysoee.dk/editline"
8arch="all" 8arch="all"
@@ -11,7 +11,8 @@ depends_dev="ncurses-dev"
11makedepends_build="" 11makedepends_build=""
12makedepends_host="$depends_dev" 12makedepends_host="$depends_dev"
13subpackages="$pkgname-static $pkgname-dev $pkgname-doc" 13subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
14source="https://www.thrysoee.dk/editline/libedit-$_ver.tar.gz" 14source="https://www.thrysoee.dk/editline/libedit-$_ver.tar.gz
15 fix-segfault-54654.patch"
15builddir="$srcdir"/libedit-$_ver 16builddir="$srcdir"/libedit-$_ver
16 17
17build() { 18build() {
@@ -38,4 +39,5 @@ package() {
38 rm "$pkgdir"/usr/share/man/man3/history.3* 39 rm "$pkgdir"/usr/share/man/man3/history.3*
39} 40}
40 41
41sha512sums="9f475249b984e02ece0af3a0efe353233fef644ecf37482e28597a3ce552ca5a07678939b2c4ecbe3d2b14761fa67f23d2e839a322b94c0feeeba9e403b2be00 libedit-20191025-3.1.tar.gz" 42sha512sums="9f475249b984e02ece0af3a0efe353233fef644ecf37482e28597a3ce552ca5a07678939b2c4ecbe3d2b14761fa67f23d2e839a322b94c0feeeba9e403b2be00 libedit-20191025-3.1.tar.gz
43f31b4dee12be07f16d0dd20be37da982b2f2a13a7ac4e52e0a7cb97112d1544df527d65bad200db5c704ca977f495e0601777bcb7928564804e4643c7d95743a fix-segfault-54654.patch"
diff --git a/main/libedit/fix-segfault-54654.patch b/main/libedit/fix-segfault-54654.patch
new file mode 100644
index 0000000000..282ee4bc3e
--- /dev/null
+++ b/main/libedit/fix-segfault-54654.patch
@@ -0,0 +1,30 @@
1This patch fixes a segfault in re_fastputc. This segfault happens in
2one-line terminals. It is a backport from upstream netbsd.
3
4See:
5
6 * https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54654
7 * https://freshbsd.org/commit/netbsd/src/PxLOa0eNmIl1zBKB
8
9diff -upr libedit-20191025-3.1.orig/src/terminal.c libedit-20191025-3.1/src/terminal.c
10--- libedit-20191025-3.1.orig/src/terminal.c 2019-11-14 10:41:42.834954338 +0100
11+++ libedit-20191025-3.1/src/terminal.c 2019-11-14 10:43:13.164941706 +0100
12@@ -497,7 +497,7 @@ terminal_move_to_line(EditLine *el, int
13 if (where == el->el_cursor.v)
14 return;
15
16- if (where > el->el_terminal.t_size.v) {
17+ if (where >= el->el_terminal.t_size.v) {
18 #ifdef DEBUG_SCREEN
19 (void) fprintf(el->el_errfile,
20 "%s: where is ridiculous: %d\r\n", __func__, where);
21@@ -647,7 +647,8 @@ terminal_overwrite(EditLine *el, const w
22 if (el->el_cursor.h >= el->el_terminal.t_size.h) { /* wrap? */
23 if (EL_HAS_AUTO_MARGINS) { /* yes */
24 el->el_cursor.h = 0;
25- el->el_cursor.v++;
26+ if (el->el_cursor.v + 1 < el->el_terminal.t_size.v)
27+ el->el_cursor.v++;
28 if (EL_HAS_MAGIC_MARGINS) {
29 /* force the wrap to avoid the "magic"
30 * situation */