From 6fc1d550577fb7f9aadb17e45c0f33676fd7aaaa Mon Sep 17 00:00:00 2001 From: "Edinaldo P. Silva" Date: Thu, 26 Nov 2015 08:43:58 +0700 Subject: audio/flake: Fix buffer overrun. Signed-off-by: Willy Sudiarto Raharjo --- audio/flake/1001-buffer_overrun.patch | 18 ++++++++++++++++ audio/flake/README | 27 ++++++++++++++---------- audio/flake/flake.1 | 39 +++++++++++++++++++++++++++++++++++ audio/flake/flake.SlackBuild | 11 +++++++++- audio/flake/slack-desc | 8 +++---- 5 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 audio/flake/1001-buffer_overrun.patch create mode 100644 audio/flake/flake.1 (limited to 'audio/flake') diff --git a/audio/flake/1001-buffer_overrun.patch b/audio/flake/1001-buffer_overrun.patch new file mode 100644 index 000000000000..d26bee3196ff --- /dev/null +++ b/audio/flake/1001-buffer_overrun.patch @@ -0,0 +1,18 @@ +Description: Pass max_order instead of max_order+1 to compute_lpc_coefs(). + This avoids a buffer overrun in the autoc[] array. +Origin: upstream, commit:263 +--- + libflake/lpc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- flake.orig/libflake/lpc.c ++++ flake/libflake/lpc.c +@@ -232,7 +232,7 @@ lpc_calc_coefs(const int32_t *samples, i + int i; + int opt_order; + +- compute_autocorr(samples, blocksize, max_order+1, autoc); ++ compute_autocorr(samples, blocksize, max_order, autoc); + + opt_order = max_order; + if(omethod == FLAKE_ORDER_METHOD_EST) { diff --git a/audio/flake/README b/audio/flake/README index 966df8d1d6c5..87562f5f6ef1 100644 --- a/audio/flake/README +++ b/audio/flake/README @@ -1,16 +1,21 @@ flake (open-souce FLAC audio encoder) -Flake is an open-souce FLAC audio encoder. -It was developed as an independent implementation of the FLAC specification, -and is meant to be an alternative to the FLAC reference encoder. -While Flake does not yet have many of the advanced features of the reference encoder, it does have the benefit of faster encoding. +Flake is an open-souce FLAC audio encoder. It was developed as an +independent implementation of the FLAC specification, and is meant +to be an alternative to the FLAC reference encoder. + +While Flake does not yet have many of the advanced features of the +reference encoder, it does have the benefit of faster encoding. Features: -* Commandline encoder frontend -* libflake library which can be used by other programs -* Fast encoding -* Compression modes which closely mirror the reference encoder, plus additional modes for higher compression -* A variety of LPC order search methods, each of which has its own speed vs. compression tradeoff -* Variable block size encoding: an experimental feature which is allowed as part of the specification, - but is not currently implemented in the reference encoder. + * Commandline encoder frontend + * libflake library which can be used by other programs + * Fast encoding + * Compression modes which closely mirror the reference encoder, +plus additional modes for higher compression + * A variety of LPC order search methods, each of which has its +own speed vs. compression tradeoff + * Variable block size encoding: an experimental feature which +is allowed as part of the specification, but is not currently +implemented in the reference encoder. diff --git a/audio/flake/flake.1 b/audio/flake/flake.1 new file mode 100644 index 000000000000..471f67ae9ffe --- /dev/null +++ b/audio/flake/flake.1 @@ -0,0 +1,39 @@ +.TH "FLAKE" "1" "2007-05-20" "Thomas Perl" "" +.SH "NAME" +flake \- Alternative Free Lossless Audio Codec encoder +.SH "SYNOPSIS" +.B flake +.RI [options] +[input.wav] +[output.flac] +.SH "DESCRIPTION" +\fBflake\fP is an alternative encoder for the Free Lossless Audio Codec. Most tests turn out very similar or slightly better compression than the FLAC reference encoder, and it generally encodes significantly faster. Decoding times of the generated files are also close to those made by the reference encoder. +.SH "OPTIONS" +.TP +.B \-h +Print out list of commandline options +.TP +.B \-p # +Padding bytes to put in header (default: 4096) +.TP +.B \-0..\-12 +Compression level (default: 5) +.TP +.B \-b # +Block size [16 \- 65535] (default: 4608) +.TP +.B \-l # +Maximum prediction order [0 \- 32] (default: 8) +.TP +.B \-o # +Prediction order selection method (0 = maximum, 1 = estimate (default), 2 = 2\-level, 3 = 4\-level, 4 = 8\-level, 5 = full search) +.TP +.B \-s # +Stereo decorrelation method (0 = independent L+R channels, 1 = mid\-side (default)) +.SH "SEE ALSO" +.BR flac (1) +.SH "AUTHOR" +flake was written by Justin Ruggles . +.PP +This manual page was written by Thomas Perl , +for the Debian project (but may be used by others). diff --git a/audio/flake/flake.SlackBuild b/audio/flake/flake.SlackBuild index fcd7a257b25a..b675b9f05a00 100644 --- a/audio/flake/flake.SlackBuild +++ b/audio/flake/flake.SlackBuild @@ -24,7 +24,7 @@ PRGNAM=flake VERSION=${VERSION:-0.11} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -69,6 +69,8 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +patch -p1 < $CWD/1001-buffer_overrun.patch + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ @@ -81,7 +83,14 @@ make install DESTDIR=$PKG find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +mkdir -p $PKG/usr/man/man1 +cp -a $CWD/flake.1 $PKG/usr/man/man1 + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + DOCS="Changelog COPYING README" + mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM-SlackBuild diff --git a/audio/flake/slack-desc b/audio/flake/slack-desc index 295b4c00d819..fb29fd2467b5 100644 --- a/audio/flake/slack-desc +++ b/audio/flake/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------------| flake: flake (open-souce FLAC audio encoder) flake: -flake: Flake is an open-souce FLAC audio encoder. -flake: It was developed as an independent -flake: implementation of the FLAC specification, and is meant to be an -flake: alternative to the FLAC reference encoder. +flake: Flake is an open-souce FLAC audio encoder. It was developed as an +flake: independent implementation of the FLAC specification, and is meant +flake: to be an alternative to the FLAC reference encoder. flake: flake: Home Page: http://flake-enc.sourceforge.net/ flake: flake: flake: +flake: -- cgit v1.2.3