Date: Sunday, May 23, 2010 @ 16:49:47 Author: ibiru Revision: 80914 upgpkg: cmus 2.3.2-2 fix segmentation cause by gcc update. fixes FS#19560
Added: cmus/trunk/fix_format_print.patch Modified: cmus/trunk/PKGBUILD ------------------------+ PKGBUILD | 10 ++++++--- fix_format_print.patch | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2010-05-23 13:28:17 UTC (rev 80913) +++ PKGBUILD 2010-05-23 20:49:47 UTC (rev 80914) @@ -4,7 +4,7 @@ pkgname=cmus pkgver=2.3.2 -pkgrel=1 +pkgrel=2 pkgdesc="A very feature-rich ncurses-based music player" arch=('i686' 'x86_64') url="http://cmus.sourceforge.net/" @@ -13,12 +13,16 @@ depends=('sh' 'libao' 'libmpcdec' 'ffmpeg' 'flac' 'libmad' 'faad2') makedepends=('libmp4v2') optdepends=('libmp4v2') -source=("http://downloads.sourceforge.net/$pkgname/$pkgname-v$pkgver.tar.bz2") -md5sums=('47698e355cff2e7b985a22475099c100') +source=("http://downloads.sourceforge.net/$pkgname/$pkgname-v$pkgver.tar.bz2" + fix_format_print.patch) +md5sums=('47698e355cff2e7b985a22475099c100' + '3d62fa9030cd054eb5fa0a275fd1964a') build() { cd $srcdir/$pkgname-v$pkgver + patch -Np1 -i $srcdir/fix_format_print.patch || return 1 + export CONFIG_ARTS=n ./configure prefix=/usr || return 1 make || return 1 Added: fix_format_print.patch =================================================================== --- fix_format_print.patch (rev 0) +++ fix_format_print.patch 2010-05-23 20:49:47 UTC (rev 80914) @@ -0,0 +1,48 @@ +From 2e679c66554cc0205779a72b82ddcc0175f571a6 Mon Sep 17 00:00:00 2001 +From: Gregory Petrosyan <gregory.petros...@gmail.com> +Date: Sun, 23 May 2010 20:02:58 +0400 +Subject: [PATCH] Fix format_print()'s buffer width calculation + +This solves reported memory corruptions and crashes. +Looks like this bug was uncovered due to a GCC upgrade. + +Reported-by: Vlastimil Kotas <vlast...@kralikbobek.cz> +Reported-by: evinupavi...@arcor.de +Triaged-by: Xavier Chantry <chantry.xav...@gmail.com> +Acked-by: Xavier Chantry <chantry.xav...@gmail.com> +Signed-off-by: Gregory Petrosyan <gregory.petros...@gmail.com> +--- + ui_curses.c | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/ui_curses.c b/ui_curses.c +index 0a390a0..ce6d334 100644 +--- a/ui_curses.c ++++ b/ui_curses.c +@@ -104,7 +104,9 @@ static char print_buffer[512]; + /* destination buffer for utf8_encode and utf8_decode */ + static char conv_buffer[512]; + +-#define print_buffer_size (sizeof(print_buffer) - 1) ++/* one character can take up to 4 bytes in UTF-8 */ ++#define print_buffer_max_width (sizeof(print_buffer) / 4 - 1) ++ + static int using_utf8; + + static const char *t_ts; +@@ -1181,10 +1183,10 @@ static void do_update_titleline(void) + + /* set window title */ + if (use_alt_format) { +- format_print(print_buffer, sizeof(print_buffer) - 1, ++ format_print(print_buffer, print_buffer_max_width, + window_title_alt_format, track_fopts); + } else { +- format_print(print_buffer, sizeof(print_buffer) - 1, ++ format_print(print_buffer, print_buffer_max_width, + window_title_format, track_fopts); + } + +-- +1.6.1 +