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"  }  | 
