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