diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2023-02-07 09:11:48 -0800 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2023-02-07 09:11:48 -0800 |
commit | 83aed9ed51aedc07ae7cd25f1aa41d6315a8ace7 (patch) | |
tree | c815cbaf109bf1a91d2e5d77e48ec449fac0dfa2 | |
parent | Updated to 3.3_a (diff) | |
download | tmux-83aed9ed51aedc07ae7cd25f1aa41d6315a8ace7.tar.xz |
Rebuild with hotfix.
Unbreak lto.
-rw-r--r-- | CVE-2022-47016.patch | 58 | ||||
-rw-r--r-- | PKGBUILD | 42 |
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); @@ -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" } |