Package: libmp3lame0 Version: 3.99.5+repack1-3 Severity: normal Tags: upstream patch
Dear Maintainer, libmp3lame.so.0 currently exports lots of internal symbols. In particular the getbits symbol causes real-world issues due to symbol clashes, see e.g. http://users.softlab.ntua.gr/~ttsiod/mp3pro.html To reproduce run: nm -D /usr/lib/x86_64-linux-gnu/libmp3lame.so.0.0.0 | grep getbits Returns: 000000000003d030 T getbits 000000000003d0a0 T getbits_fast Expected: should not print anything, getbits is a too common name to export safely. mp3lame actually includes a .sym for use with libtool, but for some reason does not use it (probably because it does not actually work as-is). I sent a patch upstream, but I am unsure there is much activity, plus you might be in a better position to test if any applications rely on these internal symbols. Upstream bug report including (IMHO very simple) patch: https://sourceforge.net/tracker/?func=detail&aid=3606697&group_id=290&atid=300290 -- System Information: Debian Release: 7.0 APT prefers unstable APT policy: (700, 'unstable'), (600, 'experimental'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libmp3lame0 depends on: ii libc6 2.17-0experimental2 ii multiarch-support 2.17-0experimental2 libmp3lame0 recommends no packages. libmp3lame0 suggests no packages. -- no debconf information
Index: include/libmp3lame.sym =================================================================== RCS file: /cvsroot/lame/lame/include/libmp3lame.sym,v retrieving revision 1.1 diff -u -r1.1 libmp3lame.sym --- include/libmp3lame.sym 14 Mar 2010 17:23:35 -0000 1.1 +++ include/libmp3lame.sym 4 Mar 2013 19:45:25 -0000 @@ -1,232 +1,177 @@ lame_init - +lame_init_old lame_set_num_samples lame_get_num_samples - lame_set_in_samplerate lame_get_in_samplerate - lame_set_num_channels lame_get_num_channels - lame_set_scale lame_get_scale - lame_set_scale_left lame_get_scale_left - lame_set_scale_right lame_get_scale_right - lame_set_out_samplerate lame_get_out_samplerate - lame_set_analysis lame_get_analysis - lame_set_bWriteVbrTag lame_get_bWriteVbrTag - lame_set_decode_only lame_get_decode_only - +lame_set_ogg +lame_get_ogg lame_set_quality lame_get_quality - lame_set_mode lame_get_mode - +lame_set_mode_automs +lame_get_mode_automs lame_set_force_ms lame_get_force_ms - lame_set_free_format lame_get_free_format - - lame_set_findReplayGain lame_get_findReplayGain - lame_set_decode_on_the_fly lame_get_decode_on_the_fly - +lame_set_ReplayGain_input +lame_get_ReplayGain_input +lame_set_ReplayGain_decode +lame_get_ReplayGain_decode +lame_set_findPeakSample +lame_get_findPeakSample lame_set_nogap_total lame_get_nogap_total - lame_set_nogap_currentindex lame_get_nogap_currentindex - - lame_set_errorf lame_set_debugf lame_set_msgf - lame_set_brate lame_get_brate - lame_set_compression_ratio lame_get_compression_ratio - lame_set_preset - lame_set_asm_optimizations - - lame_set_copyright lame_get_copyright - lame_set_original lame_get_original - lame_set_error_protection lame_get_error_protection - lame_set_padding_type lame_get_padding_type - lame_set_extension lame_get_extension - lame_set_strict_ISO lame_get_strict_ISO - lame_set_disable_reservoir lame_get_disable_reservoir - lame_set_quant_comp lame_get_quant_comp lame_set_quant_comp_short lame_get_quant_comp_short - lame_set_experimentalX lame_get_experimentalX - lame_set_experimentalY lame_get_experimentalY - lame_set_experimentalZ lame_get_experimentalZ - lame_set_exp_nspsytune lame_get_exp_nspsytune - lame_set_msfix lame_get_msfix - lame_set_VBR lame_get_VBR - lame_set_VBR_q lame_get_VBR_q - +lame_set_VBR_quality +lame_get_VBR_quality lame_set_VBR_mean_bitrate_kbps lame_get_VBR_mean_bitrate_kbps - lame_set_VBR_min_bitrate_kbps lame_get_VBR_min_bitrate_kbps - lame_set_VBR_max_bitrate_kbps lame_get_VBR_max_bitrate_kbps - lame_set_VBR_hard_min lame_get_VBR_hard_min - lame_set_preset_expopts - lame_set_lowpassfreq lame_get_lowpassfreq - lame_set_lowpasswidth lame_get_lowpasswidth - lame_set_highpassfreq lame_get_highpassfreq - lame_set_highpasswidth lame_get_highpasswidth - lame_set_ATHonly lame_get_ATHonly - lame_set_ATHshort lame_get_ATHshort - lame_set_noATH lame_get_noATH - lame_set_ATHtype lame_get_ATHtype - lame_set_ATHlower lame_get_ATHlower - lame_set_athaa_type lame_get_athaa_type - lame_set_athaa_loudapprox lame_get_athaa_loudapprox - lame_set_athaa_sensitivity lame_get_athaa_sensitivity - lame_set_cwlimit lame_get_cwlimit - +lame_set_allow_diff_short +lame_get_allow_diff_short lame_set_useTemporal lame_get_useTemporal - lame_set_interChRatio lame_get_interChRatio - lame_set_no_short_blocks lame_get_no_short_blocks lame_set_force_short_blocks lame_get_force_short_blocks -lame_set_allow_diff_short -lame_get_allow_diff_short - lame_set_emphasis lame_get_emphasis - lame_get_version lame_get_encoder_delay lame_get_encoder_padding lame_get_framesize - lame_get_mf_samples_to_encode lame_get_size_mp3buffer lame_get_frameNum lame_get_totalframes - lame_get_RadioGain lame_get_AudiophileGain lame_get_PeakSample lame_get_noclipGainChange lame_get_noclipScale - lame_init_params - get_lame_version get_lame_short_version get_lame_very_short_version get_psy_version get_lame_url -get_lame_version_numerical get_lame_os_bitness - +get_lame_version_numerical lame_print_config lame_print_internals - lame_encode_buffer lame_encode_buffer_interleaved lame_encode_buffer_float +lame_encode_buffer_ieee_float +lame_encode_buffer_interleaved_ieee_float +lame_encode_buffer_ieee_double +lame_encode_buffer_interleaved_ieee_double lame_encode_buffer_long lame_encode_buffer_long2 lame_encode_buffer_int lame_encode_flush lame_encode_flush_nogap - lame_init_bitstream - lame_bitrate_hist lame_bitrate_kbps lame_stereo_mode_hist @@ -234,39 +179,26 @@ lame_block_type_hist lame_bitrate_block_type_hist lame_mp3_tags_fid -lame_close lame_get_lametag_frame -lame_set_VBR_quality -lame_get_VBR_quality - - -bitrate_table -samplerate_table - -lame_decode_init -lame_decode -lame_decode_headers -lame_decode1 -lame_decode1_headers -lame_decode1_headersB -lame_decode_exit - -lame_get_id3v1_tag -lame_get_id3v2_tag -lame_set_write_id3tag_automatic -lame_get_write_id3tag_automatic - +lame_close +lame_encode_finish hip_decode_init hip_decode_exit +hip_set_errorf +hip_set_debugf +hip_set_msgf hip_decode hip_decode_headers hip_decode1 hip_decode1_headers hip_decode1_headersB -hip_set_debugf -hip_set_errorf -hip_set_msgf - +lame_decode_init +lame_decode +lame_decode_headers +lame_decode1 +lame_decode1_headers +lame_decode1_headersB +lame_decode_exit id3tag_genre_list id3tag_init id3tag_add_v2 @@ -274,6 +206,7 @@ id3tag_v2_only id3tag_space_v1 id3tag_pad_v2 +id3tag_set_pad id3tag_set_title id3tag_set_artist id3tag_set_album @@ -283,7 +216,17 @@ id3tag_set_genre id3tag_set_fieldvalue id3tag_set_albumart -id3tag_set_pad -id3tag_set_comment_ucs2 +lame_get_id3v1_tag +lame_get_id3v2_tag +lame_set_write_id3tag_automatic +lame_get_write_id3tag_automatic +id3tag_set_textinfo_latin1 +id3tag_set_comment_latin1 id3tag_set_textinfo_ucs2 - +id3tag_set_comment_ucs2 +id3tag_set_fieldvalue_ucs2 +id3tag_set_fieldvalue_utf16 +id3tag_set_textinfo_utf16 +id3tag_set_comment_utf16 +lame_get_bitrate +lame_get_samplerate Index: libmp3lame/Makefile.am =================================================================== RCS file: /cvsroot/lame/lame/libmp3lame/Makefile.am,v retrieving revision 1.39 diff -u -r1.39 Makefile.am --- libmp3lame/Makefile.am 30 Oct 2010 13:21:02 -0000 1.39 +++ libmp3lame/Makefile.am 4 Mar 2013 19:45:25 -0000 @@ -22,6 +22,7 @@ libmp3lame_la_LIBADD = $(cpu_ldadd) $(vector_ldadd) $(decoder_ldadd) \ $(CONFIG_MATH_LIB) libmp3lame_la_LDFLAGS = -version-info @LIB_MAJOR_VERSION@:@LIB_MINOR_VERSION@ \ + -export-symbols $(top_builddir)/include/libmp3lame.sym \ -no-undefined INCLUDES = @INCLUDES@ -I$(top_srcdir)/mpglib -I$(top_builddir)

