Compare commits
10 Commits
567bfa7737
...
7adc8e7842
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7adc8e7842 | ||
|
|
95f5b682a6 | ||
|
|
bf4308801f | ||
|
|
454e458fb0 | ||
|
|
8bd744c747 | ||
|
|
fc2985a73d | ||
|
|
511554fd2e | ||
|
|
97b56c7346 | ||
|
|
28a68c23a2 | ||
|
|
253409081a |
77
0001-fix-fuzz-undefined-behavior-error.patch
Normal file
77
0001-fix-fuzz-undefined-behavior-error.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
Date: Sat, 5 Dec 2020 06:33:28 +0000
|
||||||
|
Subject: [PATCH] fix fuzz undefined behavior error
|
||||||
|
|
||||||
|
---
|
||||||
|
libmp3lame/VbrTag.c | 2 +-
|
||||||
|
libmp3lame/bitstream.c | 6 +++---
|
||||||
|
libmp3lame/id3tag.c | 3 ++-
|
||||||
|
libmp3lame/quantize.c | 2 +-
|
||||||
|
4 files changed, 7 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libmp3lame/VbrTag.c b/libmp3lame/VbrTag.c
|
||||||
|
index 5800a44..880010a 100644
|
||||||
|
--- a/libmp3lame/VbrTag.c
|
||||||
|
+++ b/libmp3lame/VbrTag.c
|
||||||
|
@@ -251,7 +251,7 @@ IsVbrTag(const unsigned char *buf)
|
||||||
|
return (isTag0 || isTag1);
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
|
||||||
|
+#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(0xffffffffu << (n)) ) )
|
||||||
|
|
||||||
|
static void
|
||||||
|
setLameTagFrameHeader(lame_internal_flags const *gfc, unsigned char *buffer)
|
||||||
|
diff --git a/libmp3lame/bitstream.c b/libmp3lame/bitstream.c
|
||||||
|
index aa35915..25ee88a 100644
|
||||||
|
--- a/libmp3lame/bitstream.c
|
||||||
|
+++ b/libmp3lame/bitstream.c
|
||||||
|
@@ -178,7 +178,7 @@ putbits2(lame_internal_flags * gfc, int val, int j)
|
||||||
|
assert(j < MAX_LENGTH); /* 32 too large on 32 bit machines */
|
||||||
|
assert(bs->buf_bit_idx < MAX_LENGTH);
|
||||||
|
|
||||||
|
- bs->buf[bs->buf_byte_idx] |= ((val >> j) << bs->buf_bit_idx);
|
||||||
|
+ bs->buf[bs->buf_byte_idx] |= (((unsigned int)val >> j) << bs->buf_bit_idx);
|
||||||
|
bs->totbit += k;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -290,8 +290,8 @@ CRC_update(int value, int crc)
|
||||||
|
int i;
|
||||||
|
value <<= 8;
|
||||||
|
for (i = 0; i < 8; i++) {
|
||||||
|
- value <<= 1;
|
||||||
|
- crc <<= 1;
|
||||||
|
+ value = (unsigned int)value * 2;
|
||||||
|
+ crc = (unsigned int)crc * 2;
|
||||||
|
|
||||||
|
if (((crc ^ value) & 0x10000))
|
||||||
|
crc ^= CRC16_POLYNOMIAL;
|
||||||
|
diff --git a/libmp3lame/id3tag.c b/libmp3lame/id3tag.c
|
||||||
|
index ac48510..f2888c3 100644
|
||||||
|
--- a/libmp3lame/id3tag.c
|
||||||
|
+++ b/libmp3lame/id3tag.c
|
||||||
|
@@ -157,7 +157,8 @@ typedef enum MiscIDs { ID_TXXX = FRAME_ID('T', 'X', 'X', 'X')
|
||||||
|
static int
|
||||||
|
frame_id_matches(int id, int mask)
|
||||||
|
{
|
||||||
|
- int result = 0, i, window = 0xff;
|
||||||
|
+ int result = 0, i;
|
||||||
|
+ unsigned int window = 0xff;
|
||||||
|
for (i = 0; i < 4; ++i, window <<= 8) {
|
||||||
|
int const mw = (mask & window);
|
||||||
|
int const iw = (id & window);
|
||||||
|
diff --git a/libmp3lame/quantize.c b/libmp3lame/quantize.c
|
||||||
|
index 9ba9c16..1417763 100644
|
||||||
|
--- a/libmp3lame/quantize.c
|
||||||
|
+++ b/libmp3lame/quantize.c
|
||||||
|
@@ -895,7 +895,7 @@ inc_subblock_gain(const lame_internal_flags * const gfc, gr_info * const cod_inf
|
||||||
|
|
||||||
|
scalefac[sfb] = 0;
|
||||||
|
{
|
||||||
|
- int const gain = 210 + (s << (cod_info->scalefac_scale + 1));
|
||||||
|
+ int const gain = 210 + (int)((unsigned int)s << (cod_info->scalefac_scale + 1));
|
||||||
|
amp = IPOW20(gain);
|
||||||
|
}
|
||||||
|
j += width * (window + 1);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
||||||
54
lame-3.100-sw.patch
Executable file
54
lame-3.100-sw.patch
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
diff -Nuar lame-3.100.org/configure lame-3.100.sw/configure
|
||||||
|
--- lame-3.100.org/configure 2022-05-26 15:39:59.220000000 +0000
|
||||||
|
+++ lame-3.100.sw/configure 2022-05-26 15:46:24.500000000 +0000
|
||||||
|
@@ -17507,7 +17507,7 @@
|
||||||
|
*86)
|
||||||
|
OPTIMIZATION="${OPTIMIZATION} -mfancy-math-387"
|
||||||
|
;;
|
||||||
|
- alpha*)
|
||||||
|
+ alpha* | sw_64*)
|
||||||
|
OPTIMIZATION="${OPTIMIZATION} -mfp-regs"
|
||||||
|
|
||||||
|
$as_echo "#define FLOAT double" >>confdefs.h
|
||||||
|
@@ -17670,7 +17670,7 @@
|
||||||
|
# LINUX on Digital/Compaq Alpha CPUs
|
||||||
|
##########################################################################
|
||||||
|
case $host in
|
||||||
|
-alpha*-*-linux*)
|
||||||
|
+alpha*-*-linux* | sw_64*-*-linux*)
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
#### Check if 'ccc' is in our path
|
||||||
|
diff -Nuar lame-3.100.org/libmp3lame/lame.c lame-3.100.sw/libmp3lame/lame.c
|
||||||
|
--- lame-3.100.org/libmp3lame/lame.c 2022-05-26 15:39:59.240000000 +0000
|
||||||
|
+++ lame-3.100.sw/libmp3lame/lame.c 2022-05-26 15:44:51.440000000 +0000
|
||||||
|
@@ -48,7 +48,7 @@
|
||||||
|
#include "tables.h"
|
||||||
|
|
||||||
|
|
||||||
|
-#if defined(__FreeBSD__) && !defined(__alpha__)
|
||||||
|
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
|
||||||
|
#include <floatingpoint.h>
|
||||||
|
#endif
|
||||||
|
#ifdef __riscos__
|
||||||
|
diff -Nuar lame-3.100.org/libmp3lame/util.c lame-3.100.sw/libmp3lame/util.c
|
||||||
|
--- lame-3.100.org/libmp3lame/util.c 2022-05-26 15:39:59.240000000 +0000
|
||||||
|
+++ lame-3.100.sw/libmp3lame/util.c 2022-05-26 15:43:59.070000000 +0000
|
||||||
|
@@ -34,7 +34,7 @@
|
||||||
|
#include "tables.h"
|
||||||
|
|
||||||
|
#define PRECOMPUTE
|
||||||
|
-#if defined(__FreeBSD__) && !defined(__alpha__)
|
||||||
|
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
|
||||||
|
# include <machine/floatingpoint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -845,7 +845,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-#if defined(__FreeBSD__) && !defined(__alpha__)
|
||||||
|
+#if defined(__FreeBSD__) && !defined(__alpha__) && !defined(__sw_64__)
|
||||||
|
{
|
||||||
|
/* seet floating point mask to the Linux default */
|
||||||
|
fp_except_t mask;
|
||||||
BIN
lame-3.100.tar.gz
Normal file
BIN
lame-3.100.tar.gz
Normal file
Binary file not shown.
77
lame-noexecstack.patch
Normal file
77
lame-noexecstack.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
diff -up lame-398-2/libmp3lame/i386/choose_table.nas.noexec lame-398-2/libmp3lame/i386/choose_table.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/choose_table.nas.noexec 2008-08-31 14:28:37.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/choose_table.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -445,3 +445,7 @@ from2:
|
||||||
|
ret
|
||||||
|
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/cpu_feat.nas.noexec lame-398-2/libmp3lame/i386/cpu_feat.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/cpu_feat.nas.noexec 2003-11-10 16:41:00.000000000 +0100
|
||||||
|
+++ lame-398-2/libmp3lame/i386/cpu_feat.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -105,3 +105,7 @@ return0:
|
||||||
|
ret
|
||||||
|
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/fft3dn.nas.noexec lame-398-2/libmp3lame/i386/fft3dn.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/fft3dn.nas.noexec 2008-08-31 14:28:37.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/fft3dn.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -486,3 +486,7 @@ proc fht_E3DN
|
||||||
|
add esp,20
|
||||||
|
popd ebp, ebx, esi, edi
|
||||||
|
endproc
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/fftfpu.nas.noexec lame-398-2/libmp3lame/i386/fftfpu.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/fftfpu.nas.noexec 2000-10-04 14:13:26.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/fftfpu.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -617,3 +617,7 @@ fht_FPU_FXCH_3rd_part:
|
||||||
|
endproc
|
||||||
|
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/fft.nas.noexec lame-398-2/libmp3lame/i386/fft.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/fft.nas.noexec 2000-10-04 14:13:26.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/fft.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -265,3 +265,7 @@ fht_3DN:
|
||||||
|
pop esi
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/fftsse.nas.noexec lame-398-2/libmp3lame/i386/fftsse.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/fftsse.nas.noexec 2008-08-31 14:28:37.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/fftsse.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -420,3 +420,7 @@ fht_SSE:
|
||||||
|
ret
|
||||||
|
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
|
diff -up lame-398-2/libmp3lame/i386/ffttbl.nas.noexec lame-398-2/libmp3lame/i386/ffttbl.nas
|
||||||
|
--- lame-398-2/libmp3lame/i386/ffttbl.nas.noexec 2000-10-04 14:13:26.000000000 +0200
|
||||||
|
+++ lame-398-2/libmp3lame/i386/ffttbl.nas 2008-10-20 22:34:23.000000000 +0200
|
||||||
|
@@ -76,3 +76,7 @@ gray_index:
|
||||||
|
segment_code
|
||||||
|
|
||||||
|
end
|
||||||
|
+
|
||||||
|
+%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
+section .note.GNU-stack noalloc noexec nowrite progbits
|
||||||
|
+%endif
|
||||||
98
lame.spec
Normal file
98
lame.spec
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
Name: lame
|
||||||
|
Version: 3.100
|
||||||
|
Release: 10
|
||||||
|
Summary: Free MP3 audio compressor
|
||||||
|
License: GPL-2.0+ and GPL-2.0 and LGPL-2.0
|
||||||
|
URL: http://lame.sourceforge.net/
|
||||||
|
Source0: http://downloads.sourceforge.net/sourceforge/lame/%{name}-%{version}.tar.gz
|
||||||
|
Patch0001: lame-noexecstack.patch
|
||||||
|
Patch0002: libmp3lame-symbols.patch
|
||||||
|
Patch0003: 0001-fix-fuzz-undefined-behavior-error.patch
|
||||||
|
Patch0004: lame-3.100-sw.patch
|
||||||
|
|
||||||
|
BuildRequires: ncurses-devel gtk+-devel gcc
|
||||||
|
|
||||||
|
Provides: %{name}-libs = %{version}-%{release}
|
||||||
|
Obsoletes: %{name}-libs < %{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
LAME is a high quality MPEG Audio Layer III (MP3) encoder.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for lame
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The lame-devel package contains development files for lame.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: man info for lame
|
||||||
|
|
||||||
|
%description help
|
||||||
|
The lame-help Package contains man info for lame.
|
||||||
|
|
||||||
|
%package mp3x
|
||||||
|
Summary: MP3 frame analyzer
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description mp3x
|
||||||
|
The lame-mp3x package contains the mp3x frame analyzer.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
sed -i -e 's/^\(\s*hardcode_libdir_flag_spec\s*=\).*/\1/' configure
|
||||||
|
%configure \
|
||||||
|
--disable-dependency-tracking --disable-static --enable-mp3x --enable-mp3rtp
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
%delete_la
|
||||||
|
ln -sf lame/lame.h %{buildroot}%{_includedir}/lame.h
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
make test
|
||||||
|
|
||||||
|
%post
|
||||||
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
%postun
|
||||||
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%exclude %{_docdir}/%{name}
|
||||||
|
%doc README TODO USAGE doc/html/*.html ChangeLog COPYING LICENSE
|
||||||
|
%{_bindir}/{lame,mp3rtp}
|
||||||
|
%{_libdir}/libmp3lame.so.0*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%exclude %{_docdir}/%{name}
|
||||||
|
%doc API HACKING STYLEGUIDE
|
||||||
|
%{_libdir}/libmp3lame.so
|
||||||
|
%{_includedir}/{lame,lame.h}
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%{_mandir}/man1/lame.1*
|
||||||
|
|
||||||
|
%files mp3x
|
||||||
|
%{_bindir}/mp3x
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Oct 21 2022 wuzx<wuzx1226@qq.com> - 3.100-10
|
||||||
|
- add sw64 patch
|
||||||
|
|
||||||
|
* Thu Jun 03 2021 wulei <wulei80@huawei.com> - 3.100-9
|
||||||
|
- fixes failed: no acceptable C compiler found in $PATH
|
||||||
|
|
||||||
|
* Sat Dec 05 2020 Ge Wang<wangge20@huawei.com> - 3.100-8
|
||||||
|
- fix fuzz undefined bebavior error
|
||||||
|
|
||||||
|
* Thu Dec 12 2019 zoushuangshuang<zoushuangshuang@huawei.com> - 3.100-7
|
||||||
|
- Package init
|
||||||
4
lame.yaml
Normal file
4
lame.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
version_control: svn
|
||||||
|
src_repo: https://svn.code.sf.net/p/lame/svn/trunk/lame
|
||||||
|
tag_prefix: RELEASE_
|
||||||
|
seperator: _
|
||||||
16
libmp3lame-symbols.patch
Normal file
16
libmp3lame-symbols.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
--- lame-3.100/include/libmp3lame.sym 2017-09-06 14:33:35.000000000 -0500
|
||||||
|
+++ lame-3.100/include/libmp3lame.sym 2017-10-22 16:18:44.708436200 -0500
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
lame_init
|
||||||
|
-lame_init_old
|
||||||
|
lame_set_num_samples
|
||||||
|
lame_get_num_samples
|
||||||
|
lame_set_in_samplerate
|
||||||
|
@@ -188,6 +187,7 @@ hip_decode_exit
|
||||||
|
hip_set_errorf
|
||||||
|
hip_set_debugf
|
||||||
|
hip_set_msgf
|
||||||
|
+hip_set_pinfo
|
||||||
|
hip_decode
|
||||||
|
hip_decode_headers
|
||||||
|
hip_decode1
|
||||||
Loading…
x
Reference in New Issue
Block a user