summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2023-02-07 09:11:48 -0800
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2023-02-07 09:11:48 -0800
commit83aed9ed51aedc07ae7cd25f1aa41d6315a8ace7 (patch)
treec815cbaf109bf1a91d2e5d77e48ec449fac0dfa2
parentUpdated to 3.3_a (diff)
downloadtmux-83aed9ed51aedc07ae7cd25f1aa41d6315a8ace7.tar.xz
Rebuild with hotfix.
Unbreak lto.
-rw-r--r--CVE-2022-47016.patch58
-rw-r--r--PKGBUILD42
2 files changed, 84 insertions, 16 deletions
diff --git a/CVE-2022-47016.patch b/CVE-2022-47016.patch
new file mode 100644
index 0000000..4560869
--- /dev/null
+++ b/CVE-2022-47016.patch
@@ -0,0 +1,58 @@
+Index: tmux-3.3a/control.c
+===================================================================
+--- tmux-3.3a.orig/control.c
++++ tmux-3.3a/control.c
+@@ -775,6 +775,9 @@ control_start(struct client *c)
+
+ cs->read_event = bufferevent_new(c->fd, control_read_callback,
+ control_write_callback, control_error_callback, c);
++ if (cs->read_event == NULL)
++ fatalx("out of memory");
++
+ bufferevent_enable(cs->read_event, EV_READ);
+
+ if (c->flags & CLIENT_CONTROLCONTROL)
+@@ -782,6 +785,8 @@ control_start(struct client *c)
+ else {
+ cs->write_event = bufferevent_new(c->out_fd, NULL,
+ control_write_callback, control_error_callback, c);
++ if (cs->write_event == NULL)
++ fatalx("out of memory");
+ }
+ bufferevent_setwatermark(cs->write_event, EV_WRITE, CONTROL_BUFFER_LOW,
+ 0);
+Index: tmux-3.3a/file.c
+===================================================================
+--- tmux-3.3a.orig/file.c
++++ tmux-3.3a/file.c
+@@ -585,6 +585,8 @@ file_write_open(struct client_files *fil
+
+ cf->event = bufferevent_new(cf->fd, NULL, file_write_callback,
+ file_write_error_callback, cf);
++ if (cf->event == NULL)
++ fatalx("out of memory");
+ bufferevent_enable(cf->event, EV_WRITE);
+ goto reply;
+
+@@ -744,6 +746,8 @@ file_read_open(struct client_files *file
+
+ cf->event = bufferevent_new(cf->fd, file_read_callback, NULL,
+ file_read_error_callback, cf);
++ if (cf->event == NULL)
++ fatalx("out of memory");
+ bufferevent_enable(cf->event, EV_READ);
+ return;
+
+Index: tmux-3.3a/window.c
+===================================================================
+--- tmux-3.3a.orig/window.c
++++ tmux-3.3a/window.c
+@@ -1042,6 +1042,8 @@ window_pane_set_event(struct window_pane
+
+ wp->event = bufferevent_new(wp->fd, window_pane_read_callback,
+ NULL, window_pane_error_callback, wp);
++ if (wp->event == NULL)
++ fatalx("out of memory");
+ wp->ictx = input_init(wp, wp->event, &wp->palette);
+
+ bufferevent_enable(wp->event, EV_READ|EV_WRITE);
diff --git a/PKGBUILD b/PKGBUILD
index 75a1fdd..80c7bdd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,33 +6,43 @@
pkgname=tmux
pkgver=3.3_a
-pkgrel=1
-pkgdesc='A terminal multiplexer'
+pkgrel=3
+pkgdesc='Terminal multiplexer'
url='https://github.com/tmux/tmux/wiki'
arch=('x86_64')
license=('BSD')
depends=('ncurses' 'libevent' 'libutempter')
-options=(lto)
-source=("https://github.com/tmux/tmux/releases/download/${pkgver/_/}/tmux-${pkgver/_/}.tar.gz")
-sha256sums=('e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f')
-b2sums=('e835ce0f136175521035a684419f221864edb0a9506d7d68cbc0239b1349e78949ebd96573a9d8651a2df6d99acb433075d6e0c20d7394a53fe6b44bd9e56069')
+# # For some reason this breaks compiling. "error: C compiler cannot create executables"
+# # But old-fashioned raw injection of -flto=auto via export doesn't.
+#options=('lto')
+source=("https://github.com/tmux/tmux/releases/download/${pkgver/_/}/tmux-${pkgver/_/}.tar.gz"
+ "CVE-2022-47016.patch")
+sha256sums=('e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f'
+ '58fb690833e086b71b52555aa8eced695ace0a0bc51b8bccfda441e35a47ca93')
+b2sums=('e835ce0f136175521035a684419f221864edb0a9506d7d68cbc0239b1349e78949ebd96573a9d8651a2df6d99acb433075d6e0c20d7394a53fe6b44bd9e56069'
+ '5d6e44167fc067da71a7b222eea9f631bf9a64e88846d243207e9e29ab25e0bc78addca6b006ceed43a45be88abc53822a1250fd5b9a7c4830496ef77408eae3')
+
+prepare() {
+ cd "$pkgname-${pkgver/_/}"
+ patch -Np1 -i ../CVE-2022-47016.patch
+}
build() {
- cd "$srcdir/$pkgname-${pkgver/_/}"
+ cd "$pkgname-${pkgver/_/}"
- export CFLAGS="$CFLAGS -O3 -fstack-protector-all -fPIE"
- export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -fPIE"
+ export CFLAGS="$CFLAGS -O3 -fstack-protector-all -fPIE -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -fPIE -flto=auto"
export LDFLAGS="$LDFLAGS,-pie"
- ./configure \
- --prefix=/usr \
- --enable-utempter
- make
+ ./configure \
+ --prefix=/usr \
+ --enable-utempter
+ make
}
package() {
- cd "$srcdir/$pkgname-${pkgver/_/}"
+ cd "$pkgname-${pkgver/_/}"
- make install DESTDIR="$pkgdir"
- install -D -m0644 COPYING "$pkgdir/usr/share/licenses/tmux/LICENSE"
+ make install DESTDIR="$pkgdir"
+ install -D -m0644 COPYING "$pkgdir/usr/share/licenses/tmux/LICENSE"
}